我有一个基于一些输入选择和“开始”按钮填充的结果的GridView。
填充网格后,会出现“打印”按钮。
此“打印”按钮将GridView数据存储在DataTable中,并将其存储在用户会话中。
然后注册一个'onload'javascript客户端脚本,通过弹出一个带有打印预览的新窗口和打印页面的选项。
问题是当我离开页面并导航回来时,当我刷新它时,打印弹出窗口会重新显示,我猜测是因为ScriptManager.RegisterClientScriptBlock
调用get以某种方式重新注册。
有没有办法可以明确地清除客户端脚本?我也不知道在这个生命周期中你会去除哪个。逻辑上它只能在执行后立即执行,因为在任何其他时间,它可能会阻止它运行。
这是我的打印按钮点击代码:
protected void btnPrintSummary_Click(object sender, EventArgs e)
{
DataTable dtPrint = ...
Session["Print_DataTable"] = dtPrint;
Session["Print_Sort"] = ViewState["Sort"];
ScriptManager.RegisterClientScriptBlock(this, Page.GetType(), "onload", "<script type=\"text/javascript\">OpenWindow('printpopup.aspx','print_patrol_summary',750,600,',scrollbars=yes');</script>", false);
}
答案 0 :(得分:0)
您是否尝试在ClientScriptManager.IsClientScriptBlockRegistered
中使用page_load
来测试它是否已经注册?在它有的情况下,只需用空脚本再次注册它。有关更多文档,请参阅here。