我具有带有四个的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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top