Я немного смущен как/почему вы видите знаки доллара в ID.
При визуализации веб-элемент управления в разметке, ASP.NET создает атрибуты элемента id
и name
на основе веб-элемента управления ID
собственности и ее место в иерархии управления. Короче говоря, некоторые элементы управления, такие как шаблонные элементы управления или повторяющиеся элементы управления, действуют как именованные контейнеры. Значения свойств такого элемента управления «ID
» присваиваются значениям их внутренних элементов управления значениям ID
при определении атрибутов id
и name
.
В качестве примера рассмотрим следующую иерархию управления:
Здесь главная страница (ctl00
) и ContentPlaceHolder (MainContent
) элементы управления именования контейнеров. Управление веб-элементом TextBox Age
будет отображено id
из clt00_MainContent_Age - namely, its own server-side
ID property value prefixed with the
Значения идентификатора его предков-именованных контейнеров.
Отметьте, как рендеринг id
разделяет каждое пятно контейнера имен с подчеркиванием. Это функциональность по умолчанию в ASP.NET, поэтому я недоумеваю, почему вы видите знаки доллара в атрибуте id
. (При формулировании атрибута name
, ASP.NET разделяет каждое пятно контейнера именования значком доллара, но при формулировании значения атрибута id
он не должен использовать.)
Какую версию ASP.NET вы используете? Ты что-то делаешь ... странно? Как использование пользовательских элементов управления и переопределение базы Control
class's IdSeparator
property? Если вы используете ASP.NET 4, устанавливаете ли вы (намеренно или непреднамеренно) свойство управления ClientIDMode
?
Идите на фигуру, MS будет по всем стандартам. –