Установите ClientID в asp.net - PullRequest
       15

Установите ClientID в asp.net

9 голосов
/ 15 сентября 2009

Можно ли установить ClientID любого серверного элемента управления asp.net? Как я могу это сделать?

Ответы [ 7 ]

19 голосов
/ 15 сентября 2009

Хорошей новостью является то, что в VS 2010 .Net 4 вы будете иметь полный контроль над идентификаторами клиентов !

Тем не менее для текущих версий .Net, вы можете сделать должным. Я предполагаю, что вам нужен идентификатор для JavaScript. Если это так, просто получите ID так:

<script type="text/javascript">
    var myTextBox = $('#<%=TextBox1.ClientID%>');
</script>
3 голосов
/ 15 сентября 2009

Я бы посоветовал не делать этого, если вы не уверены, что хотите это сделать, но есть способ. Вы можете переопределить свойство ClientID из серверного элемента управления.

public override string ClientID
{
    get { return "whatever"; }
}

Но, как отметили другие, вы не можете сделать это извне.

3 голосов
/ 15 сентября 2009

Это невозможно. ClientID генерируется ASP.NET. От MSDN :

Значение ClientID генерируется объединение значения идентификатора контроль и значение уникального его родительский контроль. Если значение идентификатора элемент управления не указан, используется автоматически сгенерированное значение.

1 голос
/ 05 июля 2011

ASP.NET 4 имеет свойство ClientIDMode для каждого элемента управления для этого. Если вы хотите полностью отключить ClientID , вы можете использовать этот прием - он работает для любого элемента управления без обратной передачи

1 голос
/ 15 сентября 2009

Даже я думаю, что это невозможно в Visual Studio 2008. Потому что Control.ClientID Свойство имеет только метод get

Редактировать: Но в Visual Studio 2010 (.Net 4.0) это возможно

0 голосов
/ 25 июля 2013

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

0 голосов
/ 15 сентября 2009

Это функция ASP.NET 4.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...