2

我有一个 ASP.NET 按钮。单击按钮时,我希望在按钮的服务器端代码运行后显示模式弹出窗口。我不想使用 ASP.NET Ajax 控件工具包模式弹出扩展器。

使用 ASP.NET Ajax,我可以挂钩到结束请求事件。有没有办法在没有 ASP.NET Ajax 的情况下做到这一点。只是 jQuery?我基本上想在服务器端点击代码运行后运行一些javascript,在回发之后。

4

2 回答 2

5

您可以ScriptManager.RegisterStartupScript()为此使用,如下所示:

ScriptManager.RegisterStartupScript(MyUpdatePanel, GetType(), "post-load-script",
  "$(function() { $('#dialog').dialog(); });", true);

然后来自 UpdatePanel 的请求返回,它将运行:

$(function() { 
  $('#dialog').dialog(); 
});

您当然可以将任何您想要的脚本放在那里,但如果您只是使用标签或#dialog <div>作为更新的一部分填充的任何内容,这将显示它(如果您使用的是 jQuery UI 对话框,还有其他) . 这个概念非常笼统,您只是注册一些 JavaScript 以在异步请求返回时运行,哪种模式以及您想要如何做到这一点非常开放。

于 2010-08-16T15:47:19.223 回答
3

这取决于您打算使用什么方法通过 jQuery 启动回发。如果您打算使用异步回发(如 jQuery.ajax),您只需提供一个在回发完成时调用的方法。请参阅http://api.jquery.com/jQuery.ajax/

如果您只是要使用普通回发,则可以使用服务器端方法中的 Page.ClientScript.RegisterClientScriptBlock 来注册将在回发完成后运行的脚本。

于 2010-08-16T15:38:09.260 回答