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
        )
    }

posted @ 2012-10-28 13:41  左加明  Views(479)  Comments(0)    收藏  举报