При развертывании моего веб-сайта на сервере я обнаружил, что идентификатор некоторого элемента div, используемого на главной странице, изменяется с префиксом "ctl00". Так что пользовательский интерфейс смещается.
При поиске я обнаружил, что необходимо установить ClientIDMode в stati c в файле web.config.
<pages controlRenderingCompatibilityVersion="4.0" clientIDMode="Static" />
Теперь эта проблема с идентификатором решена. Но при щелчке по строкам вида сетки выдается ошибка
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;
}
Я нашел эту ссылку . Что говорит, чтобы установить clientIDMode как предсказуемый. Этого достаточно, чтобы решить эту проблему? Или нужно установить отдельный clientIDMode для gridview?