.Net добавление префикса ctl00_CPHPageContents_ для управления идентификаторами - PullRequest
1 голос
/ 14 сентября 2011

У меня есть приложение веб-форм asp.net C # в .net framework 4 На моих страницах, когда я просматриваю html источник, он меняет идентификаторы элементов управления на что-то вроде ctl00_CPHPageContents_txtUserID на самом деле это txtUserID

Это приложение было первым в Framework 3.5, и идентификаторы были сгенерированы как CPHPageContents_txtUserID

Итак, короче говоря, в Framework 3.5 Id был CPHPageContents_txtUserID, а теперь в Framework 4 ID - ctl00_CPHPageContents_txtUserID, что нарушает наши тесты автоматизации. Могу ли я удалить это ctl00, добавленное Framework 4?

Ответы [ 3 ]

2 голосов
/ 15 сентября 2011

Нашел решение здесь http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx

При установке для ClientIDMode значения Predictable удаляется префикс ct100_.

2 голосов
/ 14 сентября 2011

Проверьте ClientIDMode вашей страницы; это была новая функция в .NET 4, которая дает вам немного больше контроля над идентификаторами, генерируемыми веб-формами. Хотя, если он добавляет ctl100_ впереди, это означает, что есть новый серверный элемент управления, обертывающий CPHPageContents, которого раньше не было.

0 голосов
/ 14 ноября 2012

ClientIDMode - лучший подход.Если вы установите «статический», то идентификаторы для элементов управления на вашей странице будут теми, которые вы установили.Но если вы поддерживаете старый проект и по какой-то причине вам необходимо придерживаться более старой версии фреймворка, вы можете добавить на свою страницу следующее:

<asp:HiddenField runat="server" ID="aspPrefix" />
<div id="idPrefix" style="display:none" ><%= aspPrefix.ClientID %></div>

Затем из javascript добавьте:

var hiddenFieldId = $('#idPrefix').text();
ver controlPrefix = hiddenFieldId.substr(0, hiddenFieldId.length - 9);  // 9 chars in 'aspPrefix'

Теперь с префиксом вы можете получить идентификаторы для других элементов управления на вашей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...