2012-05-18 21 views
3

我有一個ASP:內容標籤添加到我的aspx頁面。ContentPlaceHolderID添加前綴到我的表單字段

<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 ......我應該chnge了var ID與「MainContent_」作爲前綴。然而即使這樣,第一場'divOut'也沒有什麼作用。

回答

5

如果你正在使用4.0可以修復在web.config根據您的asp.net的版本, ,您現在可以設置它, <asp:TextBox runat="server" ClientIDMode="static" id="txt1" />

這樣可以防止前綴添加到您的控制ID。

more detail here

1

使用<%=Element.ClientID%>對於EG。使用<%=divOut.ClientID%>讓頁面上的任何服務器端控件的客戶端ID。