MVC3学习笔记(三)
要求打印功能,目前似乎要求不高,利用浏览器自带的打印大体就差不多了,当然需要去掉一些多余的东西。
在网上找了一个很简单的方法:
function preview() {
bdhtml = window.document.body.innerHTML;
sprnstr = "<!--start";
eprnstr = "<!--end";
iprnstr="print-->"
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr + iprnstr) + 17);
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr + iprnstr));
window.document.body.innerHTML = prnhtml;
window.document.body.style.color = '#000000 ';
window.print;
}
……
<!—startprint—>
……这里就是需要打印的内容
<!--endprint-->
<input type= "button" id="btnPrint" name= "print" value= "预览并打印" onclick= "preview()" />
要注意的是:
1、不要直接设
sprnstr = "<!—startprint";
这样查找的时候就会找到jquery代码中的这一段文字了;
2、如果有相隔的区域,则照此方法多用几个注释标签,通过查找然后连接在一起。
除此之外,还有问题。
我的index页面使用了webgrid控件,
@grid.GetHtml(
columns:
grid.Columns(
grid.Column("Name", "编号", format: item => item.Name, canSort: true, style: "Name"),
grid.Column("PrivideTime", "发现时间", format: @<text>@String.Format("{0:d}", item.PrivideTime)</text>, canSort: true, style: "PrivideTime"),
grid.Column("Privider", "发现人", format: item => item.Privider, canSort: true),
grid.Column("CaseSource", "来源", format: @<text>@item.CaseSource</text>, canSort: true, style: "CaseSource"),
grid.Column("Area", "区域", format: @<text>@item.Area</text>, canSort: true, style: "Area"),
grid.Column("InputDep", "填报单位", format: @<text>@item.InputDep</text>, canSort: true, style: "InputDep"),
grid.Column("VerifyDep", "核查单位", format: @<text>@item.VerifyDep</text>, canSort: true, style: "VerifyDep"),
grid.Column("SurveyDep", "处置单位", format: @<text>@item.SurveyDep</text>, canSort: true, style: "SurveyDep"),
grid.Column("Status", "状态", format: @<text>@item.Status</text>, canSort: true, style: "Status"),
//***************
grid.Column("Operation", "操作", format: @<text>
@Html.ActionLink("详情", "Details", new { id = item.ID }) |
@if (((ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2) && (item.StatusID == 1 || item.StatusID == 3 || item.StatusID == 5))
|| (ViewBag.CurUserPower == 4 && (((item.InputDepID == ViewBag.CurUserDepID) && item.StatusID == 1)
|| ((item.VerifyDepID == ViewBag.CurUserDepID) && item.StatusID == 3)
|| ((item.SurveyDepID == ViewBag.CurUserDepID) && item.StatusID == 5))))
{
@Html.ActionLink("编辑", "Edit", new { ID = item.ID }) @:|
@Html.ActionLink("上报", "Report", new { ID = item.ID })
}
@if (item.StatusID == 2 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("部署核查", "Report", new { ID = item.ID })
}
@if (item.StatusID == 4 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("部署处置", "Report", new { ID = item.ID })
}
@if (item.StatusID == 6 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("结案", "Report", new { ID = item.ID })
}</text>, canSort: false, style: "Operation")
),
//***************
mode: WebGridPagerModes.All,
numericLinksCount: 7
)
其中有一列是“操作”,也就是“详细”、“编辑”等几个链接。在打印的时候肯定是不需要的,也就是不需要上面//***************包含的部分。按照前面的方法就不可行了,因为实际的html是要把上面这一段话展开的,所以无法定位。怎么办呢?当时很费脑筋,其实也不难,那就是加个hidden,根据hidden内容判断是否显示“操作”这一列。
function preview() {
$("#isPrint").attr("value","1");
$("form").submit();
}
<input type="button" name= "print" id="print" value= "预览并打印" onclick= "preview()" />
<input type="hidden" name="isPrint" id="isPrint" value="0" />
@if ( ViewBag.IsPrint == 0)
{
@grid.GetHtml(
columns:
grid.Columns(
grid.Column("Name", "编号", format: item => item.Name, canSort: true, style: "Name"),
grid.Column("PrivideTime", "发现时间", format: @<text>@String.Format("{0:d}", item.PrivideTime)</text>, canSort: true, style: "PrivideTime"),
grid.Column("Privider", "发现人", format: item => item.Privider, canSort: true),
grid.Column("CaseSource", "来源", format: @<text>@item.CaseSource</text>, canSort: true, style: "CaseSource"),
grid.Column("Area", "区域", format: @<text>@item.Area</text>, canSort: true, style: "Area"),
grid.Column("InputDep", "填报单位", format: @<text>@item.InputDep</text>, canSort: true, style: "InputDep"),
grid.Column("VerifyDep", "核查单位", format: @<text>@item.VerifyDep</text>, canSort: true, style: "VerifyDep"),
grid.Column("SurveyDep", "处置单位", format: @<text>@item.SurveyDep</text>, canSort: true, style: "SurveyDep"),
grid.Column("Status", "状态", format: @<text>@item.Status</text>, canSort: true, style: "Status"),
grid.Column("Operation", "操作", format: @<text>
@Html.ActionLink("详情", "Details", new { id = item.ID }) |
@if (((ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2) && (item.StatusID == 1 || item.StatusID == 3 || item.StatusID == 5))
|| (ViewBag.CurUserPower == 4 && (((item.InputDepID == ViewBag.CurUserDepID) && item.StatusID == 1)
|| ((item.VerifyDepID == ViewBag.CurUserDepID) && item.StatusID == 3)
|| ((item.SurveyDepID == ViewBag.CurUserDepID) && item.StatusID == 5))))
{
@Html.ActionLink("编辑", "Edit", new { ID = item.ID }) @:|
@Html.ActionLink("上报", "Report", new { ID = item.ID })
}
@if (item.StatusID == 2 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("部署核查", "Report", new { ID = item.ID })
}
@if (item.StatusID == 4 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("部署处置", "Report", new { ID = item.ID })
}
@if (item.StatusID == 6 && (ViewBag.CurUserPower == 1 || ViewBag.CurUserPower == 2 || (ViewBag.CurUserPower == 4 && ViewBag.CurUserDepID == 19)))
{
@Html.ActionLink("结案", "Report", new { ID = item.ID })
}</text>, canSort: false, style: "Operation")
),
mode: WebGridPagerModes.All,
numericLinksCount: 7
)
}
else
{
@grid.GetHtml(
columns:
grid.Columns(
grid.Column("Name", "编号", format: item => item.Name, canSort: true, style: "Name"),
grid.Column("PrivideTime", "发现时间", format: @<text>@String.Format("{0:d}", item.PrivideTime)</text>, canSort: true, style: "PrivideTime"),
grid.Column("Privider", "发现人", format: item => item.Privider, canSort: true, style: "Privider"),
grid.Column("CaseSource", "来源", format: @<text>@item.CaseSource</text>, canSort: true, style: "CaseSource"),
grid.Column("Area", "区域", format: @<text>@item.Area</text>, canSort: true, style: "Area"),
grid.Column("InputDep", "填报单位", format: @<text>@item.InputDep</text>, canSort: true, style: "InputDep"),
grid.Column("VerifyDep", "核查单位", format: @<text>@item.VerifyDep</text>, canSort: true, style: "VerifyDep"),
grid.Column("SurveyDep", "处置单位", format: @<text>@item.SurveyDep</text>, canSort: true, style: "SurveyDep"),
grid.Column("Status", "状态", format: @<text>@item.Status</text>, canSort: true, style: "Status"),
mode: WebGridPagerModes.All,
numericLinksCount: 7
)
}

浙公网安备 33010602011771号