Как установить определенный идентификатор для управления сервером в Веб-форме ASP.NET, которая использует MasterPage?

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

Например:

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

Переводится в это:

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

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

(Это для version:ASP.NET 3.5),

10
задан M4N 28 July 2016 в 15:11
поделиться

3 ответа

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

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

var something = '<%= txtName.ClientID %>';
4
ответ дан 3 December 2019 в 14:52
поделиться

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

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

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

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

25
ответ дан 3 December 2019 в 14:52
поделиться

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

Очень надоедливый выбор, сделанный людьми, занимающимися веб-формами asp.net.

2
ответ дан 3 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: