Например, у меня есть текстовое поле aspx с id="txtkms"
В html-представлении источника я вижу, что он отображается как ContentPlaceHolder1_Gridview1_txtkms_1
Мой вопрос: этот элемент управления txtkms
всегда будет отображаться как ContentPlaceHolder1_Gridview1_txtkms_1
каждый раз, когда я запускаю страницу aspx в любом браузере или любой другой компьютер.
Идентификаторы, сгенерированные для элементов управления, фактически зависят только от ваших определенных параметров ИЛИ, если вы не указали какие-либо данные, а затем примените настройки по умолчанию.
В зависимости от того, что вы установили для свойства ClientIDMode
для страниц/элементов управления, идентификаторы Control могут быть точно такими же, как вы добавляете в свою разметку, или можете добавлять идентификаторы ваших контейнеров именования, разделенные символом подчеркивания (_).
Например, когда вы устанавливаете ClientIDMode="Static"
, значение ClientID
устанавливается в значение свойства ID
, установленного в вашей разметке.
[ClientID - это идентификатор элемента управления для разметки HTML, который создается ASP.NET]
Кроме того, когда вы устанавливаете ClientIDMode="AutoID"
, значение ClientID
генерируется путем объединения значений ID
каждого родительского именованного контейнера с ID
значением элемента управления. Кроме того, в сценариях привязки данных (таких как ретранслятор, GridView..), где отображаются несколько экземпляров элемента управления, перед значением ID
элемента управления добавляется инкрементное значение. Каждый сегмент разделяется символом подчеркивания (_).
Значение по умолчанию ClientIDMode
для страницы Predictable
. Значением по умолчанию для ClientIDMode
для элемента управления является Inherit
.
Проверьте эту ссылку MSDN. Кроме того, проверьте эту ссылку для получения более подробной информации.
Я никогда не видел его изменения, но безопаснее передавать идентификатор ClientID на javascript, где вы его будете использовать...
Это лучше, если вы установили ClientIdMode = Static в свою веб-конфигурацию.
Вы можете даже использовать это:
Вы можете использовать концы jQuery с селектором:
$ ( 'Вход [ID = $ "myServerId"]')
Но помните, что такой селектор намного медленнее, чем выбор напрямую с id с помощью <% = id.ClientID%>.
http://jsperf.com/id-vs-ends-with
Это решение было получено от Gromer:
Каков наилучший способ справиться с идентификатором клиента ASP.NET
ContentPlaceHolder1_Gridview1_txtkms_0
дляtxtkms
с приращением значения ContentPlaceHolder1_Gridview1_txtkms_1 ..2 ... 3 и так далее. Теперь .. Я использую эти сто идентификаторов первых 5 строк. Пожалуйста, мой предыдущий вопрос. stackoverflow.com/q/18973570/2064292