我的问题是: “我有一个网格视图,其中有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);
}
}
答案 0 :(得分:0)
使用CSS!
@media print
{
.hideonprint{display:none;}
}
@media screen
{
.hideonprint{display:table-cell;}
}
并将列的类设置为 hideonprint