注入的JavaScript的更新面板外
-
19-09-2019 - |
题
我具有带有四个的UpdatePanel aspx页。顺便说一下,每个UpdatePanel的对应于JQuery用户界面选项卡。我想实现是一个jQuery UI模式对话外,可以从运行INSIDE任何的UpdatePanel的服务器端代码被称为的UpdatePanel。所以,第一个UpdatePanel内是一个asp:它运行一些服务器端代码按钮。当错误ocurrs,我希望能够注入一些JavaScript,将调用模式对话框中显示错误消息。这里是我使用的代码:
Dim script As String = "showPopupMessage('{0}');"
script = String.Format(script, errorMessage)
ScriptManager.RegisterStartupScript(Me.UpdatePanelBizInfo, Me.UpdatePanelBizInfo.GetType, Guid.NewGuid.ToString, script, True)
在页上的功能showPopupMessage看起来像这样:
function showPopupMessage(msg) {
$('#<%=Me.LabelPopupMessage.ClientID %>').text(msg);
$('#dialogPopupMessage').dialog('open');
}
当代码运行注入的JavaScript,没有反应。我假设它是与在代码中的错误ocurrs一个UpdatePanel内运行的事实。检查后生成的HTML,JavaScript的是存在的。我在做什么错了?
解决方案
您可以在异步回发过程中运行网页上的JavaScript,但有它正确执行,你需要使用ScriptManager类进行注册。一旦你这样做,将火作为启动脚本当更新面板回调。你可以有模态窗口打开通话火在那些情况下,启动脚本。
下面是一个非常类似的问题,我发布了一些自定义代码(见接受的答案)。它很可能会解决您的问题。
ASP.Net - 的Javascript AJAX UpdatePanel内
如果本身的模态公开征集是openMyModal(someParams...);
,您可以使用链接的代码如下:
string scriptText = "openMyModal(someParams...);";
this.RegisterClientStartupScript("openMyModal", scriptText);
不隶属于 StackOverflow