Установите ClientID в asp.net
Можно ли установить ClientID
какого-либо управления сервером asp.net? Как я могу это сделать?
7 ответов
Хорошей новостью является то, что в VS 2010 .Net 4 вы будете иметь полный контроль над идентификаторами клиентов!
Тем не менее, для текущих версий.Net вы можете сделать должное. Я предполагаю, что вам нужен идентификатор для JavaScript. Если это так, просто получите идентификатор так:
<script type="text/javascript">
var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
Я бы посоветовал не делать этого, если вы не уверены, что хотите это сделать, но есть способ. Вы можете переопределить ClientID
свойство изнутри управления сервером.
public override string ClientID
{
get { return "whatever"; }
}
Но, как отметили другие, вы не можете сделать это извне.
Это невозможно. ClientID генерируется ASP.NET. Из MSDN:
Значение ClientID генерируется путем объединения значения идентификатора элемента управления и значения UniqueID его родительского элемента управления. Если значение идентификатора элемента управления не указано, используется автоматически сгенерированное значение.
ASP.NET 4 имеет свойство ClientIDMode для каждого элемента управления для этого. Если вы хотите полностью отключить ClientID, вы можете использовать этот трюк - он работает для любого элемента управления без обратной передачи
Даже я думаю, что это невозможно в Visual Studio 2008 . Потому что свойство Control.ClientID имеет только метод get
Редактировать: Но в Visual Studio 2010(.Net 4.0) это возможно
Для VS 2010, .NET 4.0:
Если вы просто попытаетесь установить ctrl.ClientID="stringID"
вы получите ошибку, сообщающую, что ClientID доступен только для чтения. Вы можете контролировать значение ClientID, используя ClientIDMode - который определяет алгоритм, с помощью которого устанавливается ClientID:
ctrl.ID = "IDstring";
ctrl.ClientIDMode = ClientIDMode.Static; //ClientID value is set to the value of ID
HTML-разметка помечает HTML вашего элемента управления с идентификатором элемента управления. Таким образом, вы имеете некоторую степень контроля со стороны кода.