我在我的aspx页面添加了一个asp:Content标记。
<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'也没有工作。
答案 0 :(得分:5)
您可以在web.config中修复它,具体取决于您的asp.net版本,
如果您使用的是4.0,则可以将其设置为内联,
<asp:TextBox runat="server" ClientIDMode="static" id="txt1" />
这会阻止将前缀添加到您的控件ID中。
答案 1 :(得分:1)
使用<%=Element.ClientID%>
例如。使用<%=divOut.ClientID%>
获取页面上任何服务器端控件的客户端ID。