【发布时间】:2010-11-19 09:53:53
【问题描述】:
我如何在更新面板中回发后运行 javascript 事件
【问题讨论】:
标签: javascript asp.net ajax
我如何在更新面板中回发后运行 javascript 事件
【问题讨论】:
标签: javascript asp.net ajax
您可以使用PageRequestManager 的endRequest 事件。
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
alert('Postback!');
});
</script>
【讨论】:
您可以使用 ClientScriptManager 在重新加载时调用函数:
ClientScriptManager.RegisterStartupScript(this.GetType(), "AKey", "MyFunction();", true);
【讨论】:
ClientScript.RegisterOnSubmitStatement() 在!IsPostBack if 块中重新加载验证码,它就像一个魅力,解决了我的问题,因为验证码是一个用户控件等
简单
<script type="text/javascript">
function pageLoad() {
}
</script>
<asp:ScriptManager runat="server" />
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="Button1" />
<asp:Literal runat="server" ID="TextBox1" />
</ContentTemplate>
</asp:UpdatePanel>
pageLoad() 会在每次触发 Button1 时继续调用
【讨论】:
试试这个:
$.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ......
});
【讨论】:
对于在 UpdatePanel 中使用,我将使用 ScriptManager.RegisterStartupScript
【讨论】: