Как установить конкретный идентификатор для серверных элементов управления в веб-форме ASP.NET, которая использует MasterPage? - PullRequest
8 голосов
/ 22 июля 2010

Можно ли установить определенный идентификатор на серверном элементе управления ASP.NET?Каждый раз, когда я назначаю идентификатор и запускаю веб-форму, идентификатор меняется.

Например:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

Получается в переводе на это:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" />

Я думаю, что это подходит для меня с использованием главных страниц, но если да, то как я могу бытьуверен, что элемент управления будет иметь определенный идентификатор (для целей JavaScript).Я поместил автоматически сгенерированный идентификатор в свой javascript, и он работает, но я бы предпочел использовать идентификаторы, которые я им изначально присвоил.Возможно ли это?

(Это для версии: ASP.NET 3.5)

Ответы [ 3 ]

24 голосов
/ 22 июля 2010

Начиная с .NET 4, вы получаете больший контроль над тем, как выглядят идентификаторы на стороне клиента ( подробности см. В этом посте ).

Чтобы принудительно указать конкретный идентификатор на стороне клиентаВы должны установить ClientIDMode в статическое состояние.Следующее отобразит элемент <input> с id="txtName":

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox>

Хотя, если вы сделаете это, вы должны убедиться, что у вас нет двух элементов управления с одинаковыми идентификаторами на стороне клиента.Проверьте статью, указанную выше, для других вариантов.

4 голосов
/ 22 июля 2010

Так идентификаторы веб-элементов управления находятся в .NET до версии 4.0. В версии 4.0 представлены идентификаторы клиентов, которые вы можете прочитать о здесь .

Вы можете использовать что-то подобное в своем JS:

var something = '<%= txtName.ClientID %>';
2 голосов
/ 22 июля 2010

Вы можете использовать свойство Control.ClientID в своем коде для получения действительного идентификатора после его добавления в дерево элементов управления.

Супер раздражающий выбор, сделанный веб-формами asp.netчеловек.

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