使用jQuery显示asp:ModalPopupExtender

5

我正在尝试使用jQuery显示一个asp:ModalPopupExtender,但一直没有成功。以下是我的代码:

ASP.NET

<asp:ModalPopupExtender BehaviorID="confirmPopup" ID="confirmPopup" runat="server" />

JAVASCRIPT

function ShowConfirmPopup() {
    var _id = '#<%= confirmPopup.ClientID %>';
    var modal = $find(_id);
    modal.show();
}

发生的情况是modal始终等于null,因此弹出窗口永远不会显示。我做错了什么?
1个回答

6

$find() 不是 jQuery 的一部分,而是属于 ASP.NET AJAX。因此,您不应该在行为 ID 前加上井号(#):

function ShowConfirmPopup()
{
    var modal = $find("confirmPopup");
    modal.show();
}

我不知道这个,但是即使没有井号,它仍然找不到控件。 - Jean-François Beaulieu
@JFB,这可能是因为您的控件的ClientID与其在此情况下的行为ID不同。由于您在标记中明确指定了行为ID,因此在客户端代码中硬编码它也是有意义的。答案已相应更新。 - Frédéric Hamidi
弗雷德里克,好的!由于我正在使用主页,所以ClientID会被更改,因此最好像这样使用BehaviorIDvar _id = '<%= confirmPopup.BehaviorID %>'; - Jean-François Beaulieu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接