Вместо использования тегов "<% =" я бы предложил использовать частичные селекторы в jquery.Таким образом, ваш селектор будет выглядеть следующим образом </p>
var $elements = $("[id*=lbl]"); //This selector if you want to get all controls that have "lbl" in the id
var $element2 = $("[id$=lblName]"); // This selector if you know the id specified and want that specific control. It will return all matches that end with "lblName"
$= is "EndsWith"
^= is "StartsWith"
*= is "Contains"
Это позволит вам выбрать свои элементы управления и иметь возможность перемещать эти селекторы во внешний файл js вместо того, чтобы находиться на той же странице, что и элемент управления.
EDIT: Селектор переключен на «Contains».Причина этого заключается в том, что если вы не используете .net 4.0 или не отключили автоматически сгенерированные идентификаторы, ваши отрендеренные идентификаторы будут выглядеть примерно так: «cto001 $ Somethingsomething $ {указанный здесь ID}» (без {}).Таким образом, вы не можете использовать селектор «Startswith», поскольку он пытается сопоставить динамическую часть идентификатора.
Вы не сможете закончить, так как последняя часть вашего идентификатора также динамична.Таким образом, у нас остается селектор «Contains», который будет соответствовать любому элементу управления, содержащему «lbl».Вы можете сделать первую часть Id (не динамическую часть) менее общей, чтобы не возвращать несвязанные элементы управления.
EDIT2: если вы используете .net 4.0, вы можете отключить автоматически сгенерированный Id, а затемМожно использовать более приятный селектор «StartsWith» (^ =), поскольку отображаемый идентификатор вывода будет таким же, как вы указали.Вы можете сделать это, установив ClientIDMode в «Предсказуемый»