javascript - 如何在 JavaScript 中找到 ModalPopupExtender?

标签 javascript asp.net master-pages modalpopupextender

我需要编写一个从母版页运行的 Javascript 函数,以在内容页中找到 ModalPopup 并将其关闭。以下代码有效,但不是我想要的。我需要使用 mpeEditUser.ClientID 之类的东西,但出现错误。另外,如果我可以在不知道 ModalPopup id 的情况下通过其类型 (ModalPopupExtender) 找到它,那就太好了。有什么建议吗?

 function CloseModalPopup() {
        var mpu = $find('ctl00_ContentPlaceHolder1_mpeEditUser');
        mpu.hide();

    }

这是我的解决方案:(如果您发现任何问题,请告诉我。谢谢) 我在代码隐藏中获取 ModalPopup id,并将其传递给我的 javascript 函数。

在default.master.cs的Page_Load中:

ContentPlaceHolder cph = (ContentPlaceHolder)FindControl("ContentPlaceHolder1");
string sMpeID = (AjaxControlToolkit.ModalPopupExtender)cph.FindControl("mpeEditUser");

在我的 Javascript 函数中:

var mpe = $find('<%=sMpeID%>');
if (mpe != null) {
            mpe.hide();
}

最佳答案

标签可能因通过另一个页面调用而被搞乱,这发生在我身上。我不知道最适合您的解决方案,但是我解决该问题的方法是首先通过 JavaScript 函数找到 mpe,该函数在页面上的所有元素中查找模糊匹配。

var elemets = document.getElementsByTagName("*");
var mpe;
for (var i = 0; i < elemets.length; i++) {
    var id = elemets[i].id
    if (id.indexOf("mpe") >= 0) {
        mpe = elemets[i];
    }
}

如果页面上有多个 mpe,您可能需要匹配更多字符串。对我来说,elements 函数仅返回大约 50 个元素,因此开销并不算太大。您的情况可能并非如此,但即使您不在最终产品中使用此功能,它也会帮助您发现元素的实际 ID。

关于javascript - 如何在 JavaScript 中找到 ModalPopupExtender?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989199/

相关文章:

javascript - 将键从另一个对象合并到嵌套对象中

c# - Visual Studio 2012 : How to create a web form using Master Page

asp.net - 在 asp.net c# 中添加母版页后,MySql 主机出错

javascript - "Converting"jQuery 到纯 JavaScript

javascript - 如何获取 socket.io 房间中的客户端数量?

asp.net - 如何在 .NET v3.5 中创建 ASP.NET Web 窗体应用程序

javascript - MasterPage ASP.Net 和 Jquery 关于 css 类的点击问题

c# - 不允许从数据类型 nvarchar 到二进制的隐式转换。使用 CONVERT 函数运行此查询。

vb.net - 在 vb.net 中加载时更改不同页面的母版页正文颜色

javascript - JS : How to filter after map