Есть ли какой-либо недостаток для установки ClientIDMode = Static для каждого объекта (устанавливается для основного содержимого главной страницы) - PullRequest
28 голосов
/ 19 мая 2011

Я работаю над проектом asp.net и каждый раз мне нужно использовать идентификатор jquery $ (# "objectID"). Я должен изменить ClientIDMode для каждого объекта, чтобы быть статическим. Поскольку я заметил, что режим идентификатора клиента по умолчанию - Inherit, поэтому я установил статический режим идентификатора клиента MainContent как статический, и обнаружил, что весь объект стал статическим.

Это, безусловно, сэкономит много времени при работе с jquery, но я просто хочу знать, есть ли какой-то недостаток в этом и есть ли причина, почему ClientIDMode не должен быть статическим в первую очередь?

Ответы [ 2 ]

18 голосов
/ 19 мая 2011

Вы хотите быть осторожными при установке ClientIDMode в Static для таких вещей, как пользовательские элементы управления, или вы можете получить несколько элементов с одинаковым идентификатором.

Для элементов управления с привязкой к данным, таких как GridView, вы будететакже хотите использовать свойство ClientIDRowSuffix, чтобы гарантировать дифференциацию каждой строки.

В этом сообщении есть несколько хороших примеров.

4 голосов
/ 24 октября 2014

Еще один способ работы с идентификаторами в JavaScript - сделать что-то вроде этого:

var something = '<%= btnId.ClientID %>';

Пример: если у вас есть кнопка управления, как это:

<asp:Button ID="btnId" runat="server"></asp:Button>    

и идентификатор переводится в id="ct100_ContentPlaceHolder1_btnId", тогда вы можете использовать переменную something для доступа к элементу управления.

...