我有一个 ASP.NET 按钮。单击按钮时,我希望在按钮的服务器端代码运行后显示模式弹出窗口。我不想使用 ASP.NET Ajax 控件工具包模式弹出扩展器。
使用 ASP.NET Ajax,我可以挂钩到结束请求事件。有没有办法在没有 ASP.NET Ajax 的情况下做到这一点。只是 jQuery?我基本上想在服务器端点击代码运行后运行一些javascript,在回发之后。
我有一个 ASP.NET 按钮。单击按钮时,我希望在按钮的服务器端代码运行后显示模式弹出窗口。我不想使用 ASP.NET Ajax 控件工具包模式弹出扩展器。
使用 ASP.NET Ajax,我可以挂钩到结束请求事件。有没有办法在没有 ASP.NET Ajax 的情况下做到这一点。只是 jQuery?我基本上想在服务器端点击代码运行后运行一些javascript,在回发之后。
您可以ScriptManager.RegisterStartupScript()
为此使用,如下所示:
ScriptManager.RegisterStartupScript(MyUpdatePanel, GetType(), "post-load-script",
"$(function() { $('#dialog').dialog(); });", true);
然后来自 UpdatePanel 的请求返回,它将运行:
$(function() {
$('#dialog').dialog();
});
您当然可以将任何您想要的脚本放在那里,但如果您只是使用标签或#dialog
<div>
作为更新的一部分填充的任何内容,这将显示它(如果您使用的是 jQuery UI 对话框,还有其他) . 这个概念非常笼统,您只是注册一些 JavaScript 以在异步请求返回时运行,哪种模式以及您想要如何做到这一点非常开放。
这取决于您打算使用什么方法通过 jQuery 启动回发。如果您打算使用异步回发(如 jQuery.ajax),您只需提供一个在回发完成时调用的方法。请参阅http://api.jquery.com/jQuery.ajax/。
如果您只是要使用普通回发,则可以使用服务器端方法中的 Page.ClientScript.RegisterClientScriptBlock 来注册将在回发完成后运行的脚本。