我有一个ASP.NET按钮。单击该按钮时,我希望在按钮的服务器端代码运行后显示模式弹出窗口。我不想使用ASP.NET Ajax控件工具包模式弹出扩展器。
使用ASP.NET Ajax,我可以挂钩到结束请求事件。有没有办法在没有ASP.NET Ajax的情况下执行此操作。只是jQuery?在回发后,我基本上想在服务器端点击代码运行后运行一些javascript。
答案 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来注册将在回发完成后运行的脚本。