3

我有一个 asp:Content 标签添加到我的 aspx 页面。

<asp:Content ID="Step1Content" ContentPlaceHolderID="MainContent" Runat="Server">

我有一个像下面这样的javascript,

   function switchAllMenu() {
            var ids = new Array('divOut', 'divQOR', 'divPop', 'divRD', 'divCst', 'divRep', 'divCnt');
            var i, el, newObj, el1;
            if (document.getElementById('aSwitchAllMenu').value == "Expand All") {
                document.getElementById('aSwitchAllMenu').value = "Collapse All";
                for (i = 0; i < ids.length; i++) {
                    el = document.getElementById(ids[i]);
                    newObj = ids[i].replace("div", "li");
                    el1 = document.getElementById(newObj);
                    el.style.display = '';
                    el1.className = 'active';
                }
            }
            else {
                document.getElementById('aSwitchAllMenu').value = "Expand All";
                for (i = 0; i < ids.length; i++) {
                    el = document.getElementById(ids[i]);
                    newObj = ids[i].replace("div", "li");
                    el1 = document.getElementById(newObj);
                    el.style.display = 'none';
                    el1.className = '';
                }

当我单击 expandAll 或 collapseall 时,相应的 Div 必须展开和折叠。但是由于内容占位符已添加到页面中,因此它会作为字段名称的前缀,我的 JavaScript 将无法正常工作。我应该在这个 javascript 中进行什么更改,以便我的展开折叠工作。

我的字段名称如下所示,MainContent_divOut、MainContent_divQOR ......我应该以“MainContent_”为前缀更改 var id。然而,即使这对于第一个字段“divOut”也不起作用。

4

2 回答 2

5

您可以根据您的 asp.net 版本在 web.config 中修复它,如果您使用的是 4.0,则可以将其设置为 inline , <asp:TextBox runat="server" ClientIDMode="static" id="txt1" />

这将阻止将前缀添加到您的控件 ID。

更多细节在这里

于 2012-05-18T18:07:16.670 回答
1

用于<%=Element.ClientID%>例如。用于<%=divOut.ClientID%>获取页面上任何服务器端控件的客户端 ID。

于 2012-05-18T18:33:21.303 回答