#jquery #asp.net #client-side
#jquery #asp.net #на стороне клиента
Вопрос:
Я работаю над asp.net проект и каждый раз, когда мне нужно использовать идентификатор jquery $ (#»ObjectId»). Я должен изменить ClientIDMode для каждого объекта, чтобы он был статическим. Поскольку я заметил, что режим идентификатора клиента по умолчанию — Inherit, поэтому я установил режим идентификатора клиента MainContent на статический, и я обнаружил, что весь объект стал статичным.
Это, несомненно, сэкономит много времени при работе с jquery, но я просто хочу знать, есть ли в этом какой-либо недостаток и есть ли какая-либо причина, по которой ClientIDMode не должен быть установлен статическим в первую очередь?
Комментарии:
1. Итак, вы нашли какие-либо недостатки?
2. На самом деле мы обычно устанавливаем его в web.config для всех объектов в некоторых частях кода и выбираем хорошие идентификаторы для объектов — тогда в других проектах, где у вас более сложные зависимости и ожидаются более повторяющиеся изменения структуры, мы устанавливаем его на уровне объекта (на самой странице aspx).
Ответ №1:
Вы должны быть осторожны с установкой ClientIDMode в Static для таких вещей, как пользовательские элементы управления, или вы могли бы в конечном итоге получить несколько элементов с одинаковым идентификатором.
Для элементов управления с привязкой к данным, таких как GridView, вы также захотите использовать свойство ClientIDRowSuffix, чтобы гарантировать дифференциацию каждой строки.
В этом сообщении есть несколько хороших примеров.
Комментарии:
1. ссылка не работает. может быть, попробуйте это: west-wind.com/weblog/posts/2009/Nov/07 / …
2. Я обновил исходную ссылку в своем ответе. Теперь должно сработать! Спасибо.
Ответ №2:
Другим способом обработки идентификаторов в JavaScript было бы сделать что-то вроде этого:
var something = '<%= btnId.ClientID %>';
Пример: если у вас есть элемент управления button, подобный этому:
<asp:Button ID="btnId" runat="server"></asp:Button>
и идентификатор преобразуется в, id="ct100_ContentPlaceHolder1_btnId"
тогда вы могли бы использовать переменную something
для доступа к элементу управления.
Комментарии:
1. если кнопка находится внутри пользовательского элемента управления, она не будет работать