2010-08-16 39 views
2

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

使用ASP.NET Ajax,我可以挂入最终请求事件。有没有办法做到这一点没有ASP.NET Ajax。只是jQuery?我基本上想在服务器端点击代码运行后,在回发后运行一些JavaScript。

回答

3

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

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

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,以便在异步请求返回时运行,这种模式以及您希望如何实现的方式非常开放。