Control.ClientID с CSS - PullRequest
       5

Control.ClientID с CSS

4 голосов
/ 24 июня 2009

Можно ли использовать CSS с элементами управления, которые генерируют ClientID, а не обычный ID?

Теперь я могу использовать cssClass, но я хочу знать, возможно ли использовать идентификаторы:

#DivParrentId #LAbelControlId
{

    padding:100px;
    color:Red;
}

Ответы [ 2 ]

8 голосов
/ 24 июня 2009

Нет хорошего способа сделать это. Многие разработчики используют что-то вроде этого:

<style>
#<%= MyControl.ClientID %>
{
    padding:100px;
}
</style>

Но, честно говоря, я не большой поклонник этого. Это очень меткое и хрупкое. Начиная с ASP.NET 4.0, вы сможете управлять ClientID элемента в коде, поэтому вы можете указать идентификаторы для элементов, которые, как вы знаете, вам нужно будет использовать в качестве CSS или JS.

А пока я рекомендую использовать классы. В системе, над которой я работаю, нам требуются классы и идентификаторы банов для любого клиентского кода (CSS или JS), потому что это не стоит дополнительных затрат. Классы могут прекрасно работать как идентификаторы - ничто не помешает вам иметь множество уникальных (одноразовых) классов, и нет реальной проблемы с такой работой с точки зрения обслуживания.

0 голосов
/ 24 июня 2009

Это может быть возможно несколькими способами, ни один из которых не является элегантным.

Вы можете прогнозировать сгенерированные идентификаторы:

#ctl$00_mycontainer_idofmylabel
{
    padding: 100px;
}

Вы можете динамически создавать имена классов CSS *

cssLiteral.Text = "#" + myLabel.ClientID + @"{ padding: 100px; }";

Вы можете переопределить ClientID ваших ярлыков

myCustomLabel.ClientID = "myHandCraftedId" // where myCustomLabel is an instance of some CustomLabel class that extends Label and overrides ClientID property.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...