如何在用户在asp.net中关闭打印窗口后刷新当前页面?

时间:2014-02-24 12:50:20

标签: jquery asp.net

我的问题是: “我有一个网格视图,其中有6列,最后2列是EDIT和DETAILS。现在我在DATAGRID之外还有一个PRINT按钮,我想要的是,当用户点击该打印按钮时,我的最后2个列编辑和细节得到隐藏,然后出现打印窗口,然后用户将点击打印或关闭该窗口(如果他愿意)。在打印窗口关闭或被用户关闭后,然后,那2列我当点击PRINT btn时隐藏,现在变得可见...到目前为止我已经尝试过这段代码,我只成功隐藏了最后两列并且没有在打印预览中显示它们,但是!在打印窗口关闭之后,我的隐藏的列不再显示....我必须通过按CTRL + F5手动重新加载我的页面...如何实现此任务?我想再次显示这些列...请帮助我...这是我的代码在PRINT BTN CLICK EVENT ....

protected void PrintBTN_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            row.Cells[5].Visible = false;
            row.Cells[6].Visible = false;
            GridView1.Columns[5].Visible = false;
            GridView1.Columns[6].Visible = false;
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("function pageLoad(sender, args){");
            sb.Append("var prtContent = document.getElementById(\"divPrint\");");
            sb.Append("var WinPrint = window.open('', '', 'letf=0,top=0,toolbar=0,scrollbars=0,status=0');");
            sb.Append("WinPrint.document.write(prtContent.innerHTML);");
            sb.Append("WinPrint.document.close();");
            sb.Append("WinPrint.focus();");
            sb.Append("WinPrint.print();");
            sb.Append("WinPrint.close();}");

            sb.Append("</script>");
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "GridPrint", sb.ToString(), false);

        }
    }

1 个答案:

答案 0 :(得分:0)

使用CSS!

@media print
{
     .hideonprint{display:none;}   
}
@media screen
{
    .hideonprint{display:table-cell;}    
}

并将列的类设置为 hideonprint