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

时间:2013-08-22 11:35:45

标签: c# javascript asp.net

我想调用函数javascript函数从打印按钮单击后面的代码打印表单。我首先在表单上隐藏我的gridview的一列然后我想打印它。

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 事件中它可以正常运行。请帮帮我。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

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

此外,OnClientClick事件听起来像是正确的事件。那么,如果这可以解决问题呢?

答案 1 :(得分:0)

前两个选项:

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

现在为你的最后两个选项:

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

试试这个:

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

确保您使用点击的方法return false;

另外,当你做control.Attributes.Add时,请注意分号,即;,它已经附加了分号;你不是自己做的