在没有ASP.NET Ajax的回发后显示模式

时间:2010-08-16 15:24:10

标签: javascript asp.net jquery ajax modalpopup

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

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

2 个答案:

答案 0 :(得分:5)

您可以使用ScriptManager.RegisterStartupScript(),例如:

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

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

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

你当然可以在那里放置任何你想要的脚本,但是如果你只是使用了标签或者作为更新的一部分填充的#dialog <div>中的任何内容,这将显示它(如果你正在使用the jQuery UI dialog,还有其他人)。这个概念很通用,你只是在异步请求返回时注册一些JavaScript来运行,这个模态和你想要的方式是非常开放的。

答案 1 :(得分:3)

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

如果您打算使用正常的回发,可以使用服务器端方法中的Page.ClientScript.RegisterClientScriptBlock来注册将在回发完成后运行的脚本。