RegisterStartupScript 未触发 JScript 方法

RegisterStartupScript not firing off JScript method

我似乎无法弄清楚如何从我的代码隐藏中触发 javascript 函数。

这是我的 javascript 在我的 aspx 页面中...

<script type="text/javascript">
...
function HidePopup() {
  $(function() {
    $("#popup").dialog("close");
  });
});

我有一个名为 ShowPopup 的类似函数,它是为 LinkBut​​ton 的 OnClientClick 事件触发的。那是有效的。但是,在按下此按钮启动的功能结束时,我想隐藏 JQuery 对话框。我试过以下方法...

ScriptManager.RegisterStartupScript(Me, Me.GetType, "HidePopup", "HidePopup();", True)

Page.ClientScript.RegisterStartupScript(Me.GetType(), "HidePopup", "HidePopup();")

我想我需要第一个(我正在使用 AjaxControlToolkit 和这个特定的按钮,<div> 在更新面板中)但似乎都没有隐藏对话框。我没有收到任何错误,所以我有点迷路了。有任何想法吗?需要更多信息?提前致谢。

编辑:所以我的问题并不是 javascript 没有触发,我在我的 HidePopup() 函数中放入了一个 alert(message) ,所以我的问题真的似乎只是这条线...

$("#popup").dialog("close");

我的 div 定义为...

<div id="popup" style="display:none;"></div>

有人认为这有什么问题吗?

非常感谢你们,我解决了这个问题。以防其他人在这里绊倒...

因为我使用的是 UpdatePanel,所以我不得不使用 ScriptManager.RegisterStartupScript(<UpdatePanelID>, <UpdatePanelID>.GetType(), "HidePopup", "HidePopup();") - 请记下@VeselinVasilev 的回答,以便在函数调用中使用 UpdatePanel 的名称。

但最重要的是,我必须修改实际启动弹出窗口的方法。 DOM 似乎丢失了对对话框的引用。我创建了一个全局变量,并在创建时将其分配给 Dialog。然后我可以用它来显示/隐藏对话框。

var popupDialog;

function ShowPopup(message) {
    $("#popup").html(message);
    popupDialog = $("#popup").dialog({
                    title: "Working",
                    modal: true,
                    dialogClass: "no-close"
    });
};
function HidePopup() {
    popupDialog.dialog("close");
};

如果有人发现此问题或有任何疑问,请务必告诉我。