在ASP.NET中的后台回发后运行JavaScript函数

4
我有一个按钮,它会触发一个postback并调用名为hideInsert()的javascript函数,该函数大致如下:
function hideInsert() {
    $('.hide').hide();
        alert("hide");
    }

它的作用是隐藏带有“.hide”标记的表格行。这样做虽然达到了预期效果,但由于发生了postback,所有内容都被重置了。
有没有办法在单击按钮触发postback之后运行函数?
我一直在查看这个http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx,但没有成功。
然后我需要按下另一个按钮,它将触发showInsert()函数,该函数需要类似的函数。

RegisterStartupScript是我建议的.. 那有什么问题吗? - Jason P
1
你需要直接从你的代码后台将脚本写入页面中。当然不能在函数中,以便立即执行。当然,你也可以从代码后台隐藏控件... - Laurent S.
我相信 Page.IsPostBack 对你会有所帮助。你可能需要更详细地说明你的问题是什么。你是在调用函数然后发生了 postback 吗? - Jonathan Zinck
我过于深思熟虑了,Bartdude。当然,简单的解决方案是在C#代码中使用.visible = false来隐藏控件。 - Debomboys
1个回答

13

在符合您当前架构的最合理事件中,包括:

if (Page.IsPostBack) {
    ClientScript.RegisterStartupScript(this.GetType(), "HideOnPostback", "$(function() { hideInsert(); })", true); 
}

Page_Load 是一个常见的地方来包含这样的逻辑。

或者,如果您在 postback 后永远不需要被归类为 .hide 的任何内容,并且它们是服务器控件,那么您可以始终将它们设置为 Visible=false


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接