#jquery #asp.net
#jquery #asp.net
Вопрос:
У меня есть элемент управления tabcontainer, который содержит 5 вкладок. Каждая вкладка содержит пользовательский элемент управления, если я создаю кнопку, например btnControl1, в пользовательском элементе управления tab1 и в пользовательском элементе управления второй вкладки я создаю кнопку с тем же именем btnControl1. Как я могу фильтровать btnControl1 пользовательского интерфейса tab1 и btnControl1 пользовательского интерфейса tab2 с помощью Jquery
Ответ №1:
Вы могли бы фильтровать, используя название вкладки и элемент управления, например
var btn1 = $('#tab1 #btnControl');
var btn2 = $('#tab2 #btnControl');
Тем не менее, по-прежнему рекомендуется избегать использования одинаковых идентификаторов на одной странице.
ASP.NET часто идентификатор отличается от того, который вы задаете на стороне сервера, поэтому вы можете использовать свойство ClientID (если используете ASP.NET 4) присвоить каждой кнопке уникальный идентификатор.
Хорошая статья об идентификаторе клиента — https://web.archive.org/web/20211020203215/https://www.4guysfromrolla.com/articles/031710-1.aspx
Комментарии:
1. Я использую ASP.net только 4.0. Как использовать свойство ClientID, пожалуйста, укажите, например
2. Обновленный вопрос со ссылкой на статью, в которой обсуждается использование ClientID.
3. В этой статье объясняется ClientIDMode. Это позволяет разработчику указать, как ASP.NET будут обрабатываться идентификаторы элементов управления dotnetfunda.com/articles /…
Ответ №2:
Я не уверен, хотите ли вы различать кнопки или получить оба. В случае, когда вы хотите получить обе кнопки, вы можете использовать $("#btnControl1:contains")
. Это вернет вам все элементы управления, в названии которых есть «btnControl1». Причина в том, что ASP.Net сгенерирует разные идентификаторы для элементов управления, которые используют одно и то же имя.