К сожалению, вы застряли с .NET id в настоящее время в ASP.NET 3.5. Если вы не хотите добавлять элемент управления программно во время выполнения, вы можете только прочитать Id, как он появится на клиенте. Вам часто приходится делать какие-то трюки на стороне клиента, чтобы найти правильный элемент управления.
Однажды, чтобы сделать форму 508 совместимой, мне пришлось проанализировать шаблон, который, по-видимому, использовал .NET, чтобы дать идентификаторы моим вложенным элементам управления, и попытаться предсказать его. , кажется, работал в течение прошлого года; Я держу пальцы скрещенными. Или вы можете получить свойство ClientID во время выполнения и записать его в скрытое поле, например так:
<input id='SpecialControlID' type='hidden' value='<%= SpecialControl.ClientID %>'>
Тогда вы Javascript можете определить идентификатор. Короче, нет хороших способов, только надоедливые способы взлома. Проще всего добавить свои элементы управления во время выполнения.
Надежда поставляется с VS2010, где у вас есть варианты для улучшения этого. Вы можете изменить настройки для элемента управления, чтобы использовать указанный идентификатор или просто упростить алгоритм .NET, используемый для определения идентификатора, чтобы он был более предсказуемым. Вот хорошая ссылка .