Установка класса CSS для TD - PullRequest
0 голосов
/ 09 февраля 2009

Я использую пользовательский элемент управления (для которого у меня нет разрешения на изменение), который отображает HTML-код для таблицы, как показано:

<tr>
  <td></td>
  <td></td>
</tr>

Позволяет мне динамически добавлять любые элементы управления в тегах. Мой вопрос заключается в том, как бы я установить стиль ячейки для ячейки таблицы. Обычно я бы сделал <td class="myClass">. Поскольку у меня нет исходного кода для его изменения, я использую обходной путь для создания <div>, установки класса CSS и добавления его к <td>. Код выглядит примерно так:

  HtmlGenericControl divControl = new HtmlGenericControl("div");
  divControl.Attributes.Add("class", "myClass");
  //Add a textbox to divControl.
  //Add the divControl to the customized user control

Это не дает мне тот же интерфейс, который я ожидаю.

Ответы [ 3 ]

3 голосов
/ 09 февраля 2009

Если вы можете, просто добавьте DIV перед созданием таблицы. Имя класса для внешнего div будет наследоваться элементами TD:

<div class="MyClassName">
   //table code here
</div>

Тогда вы можете использовать CSS следующим образом:

.MyClassName TD { //CSS here }
0 голосов
/ 09 февраля 2009

После того, как ваш элемент управления добавлен в дерево элементов управления страницы, вы можете использовать его свойство «parent» для обработки дерева до элемента управления таблицей.

NewDynamicControl.Parent.Parent.Parent.Attributes.Add("class", "myClass")

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

0 голосов
/ 09 февраля 2009

Попробуйте использовать SPAN вместо DIV. DIV - это элемент блочного уровня, который несет с собой дополнительный форматный багаж. SPAN является встроенным элементом и не изменяет семантику представления, как это делает DIV.

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

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