Применение стилей к заголовку в p: datatable
Я хотел бы знать, как применить стили для столбца заголовка в Datatable primefaces. Я смог изменить стили для строк, используя атрибут rowStyleClass. Но не уверен, как изменить стиль для колонок. Пример был бы очень полезен. Я пробовал ниже, но стиль для всего столбца, кажется, меняется
<p:column id="SelectallID" headerText="Select ID" style="text-align:center; background-color:#C6C3C6;padding:12px;">
<h:outputText>
<h:selectBooleanCheckbox id="checkbox2" value="#{car.selected}"/>
</h:outputText>
</p:column>
когда я использую выше, весь стиль столбца, кажется, переодеваться. Но я хочу изменить стиль только для колонок. Пожалуйста Помогите. Спасибо заранее.
3 ответов
заголовки Primefaces datatable генерируют html <th>
элемент. В определении стиля можно использовать селектор элементов:
th {
color: red !important;
}
это, например, изменит цвет шрифта всех <th>
элементы на странице.
если этот выбор недостаточно специфичен для ваших целей, вы можете объединить его с идентификатором datatable:
#review-table th {
color: red;
}
Я знаю, что это старый, но на всякий случай, если кто-то еще найдет его:
вы можете создать p: dataTable с P: columnGroup следующим образом:
<p:dataTable id="example" value="#{bean.values}" var="value">
<p:columnGroup type="header">
<p:column headerText="column1" />
<p:column headerText="column2" styleClass="text-left"/>
<p:column headerText="column3" styleClass="text-left"/>
</p:columnGroup>
<p:column>#{value.val1}</p:column>
<p:column>#{value.val2}</p:column>
<p:column>#{value.val3}</p:column>
</p:dataTable>
стиль в columnGroup повлияет на заголовки <th>
и стиль в остальных столбцах повлияет на <td>
надеюсь, это поможет.
вы можете нацелиться на заголовок таблицы all <p:dataTable>
следующий код:
.ui-datatable thead th {
background-image: none !important;
background-color: var(--primary-color) !important;
color: var(--secondary-color) !important;
}
возможно, Вам придется использовать !important
переопределить унаследованные свойства
EDIT: Я согласен с комментарием @Kukeltje об избежании использования !important
, что приводит к логике, используемой принятым ответом.
.reskinned-datatable th {
background-image: none;
background-color: var(--primary-color);
color: var(--secondary-color);
}