System.ArgumentException:已存在具有相同密钥的条目-c#ClentIDMode
在服务器上部署我的网站时,我发现母版页中使用的某个div的ID正在更改,前缀为“ctl00”。因此,用户界面变得不协调 通过搜索,我发现需要在web.config文件中将clientdmode设置为staticSystem.ArgumentException:已存在具有相同密钥的条目-c#ClentIDMode,c#,asp.net,C#,Asp.net,在服务器上部署我的网站时,我发现母版页中使用的某个div的ID正在更改,前缀为“ctl00”。因此,用户界面变得不协调 通过搜索,我发现需要在web.config文件中将clientdmode设置为static <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="Static" /> 现在,ID问题已经解决。但当单击网格视图的行时,会抛出一个错误 System.ArgumentException:
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="Static" />
现在,ID问题已经解决。但当单击网格视图的行时,会抛出一个错误
System.ArgumentException:已存在具有相同密钥的条目
奇怪的是,这个异常引发了一个javascript,我只在点击按钮时调用它(而不是在gridview内部调用)。有人能解释为什么会发生这种情况吗
function Show_Hide_Display() {
if (document.getElementById("<%=fade.ClientID%>").style.display == "" || document.getElementById("<%=fade.ClientID%>").style.display == "block") {
document.getElementById("<%=fade.ClientID%>").style.display = "none";
}
else {
document.getElementById("<%=fade.ClientID%>").style.display = "block";
}
return false;
}
函数Show\u Hide\u Display(){
if(document.getElementById(“”.style.display==“”| | document.getElementById(“”.style.display==“block”){
document.getElementById(“”.style.display=“无”;
}
否则{
document.getElementById(“”.style.display=“block”;
}
返回false;
}
我找到了这个。这意味着将clientIDMode设置为可预测。这足以解决这个问题吗?或者需要为gridview设置单独的ClientMode?那么您的意思是,您在一段Javascript上遇到了一个.NET异常,该Javascript无法回调ASP.NET代码?行单击是否会导致回发?共享可复制代码如何?在Gridview上设置ClientMode=“Predictable”时,不会出现此错误。是否有可能该行单击“回发”,而您正在用相同的行重新填充网格<代码>如果(!IsPostBack){FillTheGrid();}是通常的方式(我假设viewstate已启用)。你在这样做吗?你用模板来填充网格吗?请共享整页代码(aspx和aspx.cs)