我想调用函数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 事件中它可以正常运行。请帮帮我。 提前谢谢。
答案 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时,请注意分号,即;
,它已经附加了分号;你不是自己做的