gpt4 book ai didi

asp.net - 在更新面板外部注入(inject) JavaScript

转载 作者:行者123 更新时间:2023-11-28 10:34:27 25 4
gpt4 key购买 nike

我有一个包含四个 UpdatePanel 的 aspx 页面。顺便说一下,每个 UpdatePanel 对应一个 JQuery UI 选项卡。我想要实现的是 UpdatePanel 外部的 JQuery UI 模式对话框,可以从任何 UpdatePanel 内部运行的服务器端代码调用该对话框。因此,第一个 UpdatePanel 内部是一个运行一些服务器端代码的 asp:Button。当发生错误时,我希望能够注入(inject)一些 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');
}

当代码运行以注入(inject) JavaScript 时,没有任何反应。我假设这与 UpdatePanel 内运行的代码中发生错误有关。检查生成的 HTML 后,就会发现 JavaScript 就在那里。我做错了什么?

最佳答案

您可以在异步回发期间在页面上运行 javascript,但要使其正确执行,您需要使用 ScriptManager 类来注册它。一旦你这样做了,当更新面板回调时,它将作为启动脚本触发。在这些情况下,您可以打开模态窗口并调用 fire 作为启动脚本。

这是一个非常相似的问题,我在其中发布了一些自定义代码(请参阅接受的答案)。它可能会解决你的问题。

ASP.Net - Javascript inside AJAX UpdatePanel

如果您的模式打开调用本身是 openMyModal(someParams...);,您可以将链接代码用作:

string scriptText = "openMyModal(someParams...);";
this.RegisterClientStartupScript("openMyModal", scriptText);

关于asp.net - 在更新面板外部注入(inject) JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com