Недостатком является то, что серверные элементы управления могут быть переименованы, в зависимости от их контейнеров. Например, вы можете иметь:
<asp:panel id="panel1" runat="server"></asp:panel>
Может отображаться на странице как:
<div id="ctl00$panel1"></div>
Так что если вы напишите jQuery с использованием $('#panel1')
в качестве селектора, это не сработает. Обходной путь - динамически генерировать идентификатор, например:
Dim js as String = "$('" & panel1.ClientID & "').whatever();"
Это может сделать JavaScript немного нечитаемым, но он работает довольно хорошо. Я работаю над большим веб-приложением, используя этот метод, и jQuery сэкономил нам ТОНУ времени, не говоря уже о том, что сайт выглядит и работает намного лучше.