Установите 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.0.

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 вашего элемента управления с идентификатором элемента управления. Таким образом, вы имеете некоторую степень контроля со стороны кода.

Другие вопросы по тегам