调用javascript函数从代码后面打印表单

本文关键字:打印 表单 代码 javascript 函数 调用 | 更新日期: 2023-09-27 18:28:33

我想调用一个函数javascript函数,在点击打印按钮时从代码后面打印表单。我首先在表单上隐藏了一列我的网格视图,然后我想打印它。

protected void btnPrint_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in grdTransaction.Rows)
    {
        if (UType == "A")
        {
            grdTransaction.Columns[7].Visible = false;
        }
        else
        {
            grdTransaction.Columns[3].ItemStyle.Width = 100;
            grdTransaction.Columns[5].Visible = false;
        }
    }
}

我已经使用

1) ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", 
  "<script type='text/javascript'>clicked('printablediv');</script>", true);
2) ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script",
   "clicked('printablediv');", true);
3) btnPrint.Attributea.Add("onclick","clicked('printablediv');");
4) btnPrint.Attributea.Add("onclick","return clicked('printablediv');");

以上所有选项都不起作用,但在OnClientClick事件上起作用。。请帮帮我。提前谢谢。

调用javascript函数从代码后面打印表单

如果您查看msdn上的示例,那么您会注意到您必须包括一个包括标记的整个脚本块。

此外,OnClientClick事件听起来确实是正确的事件。那么,如果这有效的话,问题出在哪里呢?

在前两个选项中:

您尝试的只是尝试调用一个名为clicked(args)的javascript方法,所以实际上并没有将其绑定到任何按钮单击。当您将最后一个参数作为true传递时,您不必将脚本包装在<script>标记中。页面加载后,它应该会立即工作。

现在查看您的最后两个选项:

看看会发生什么,当你点击按钮时,它会回发,因此你看不到javaSrippt代码的效果,因为整个页面都被重新加载了。您需要阻止PostBack。

试试这个:

btnPrint.Attributes.Add("onclick","clicked('printablediv'); return false");

确保您的return false;来自您单击的方法。

此外,当您进行控制时,请注意分号,即;。属性。加上,它已经加上了分号;你不会自己做