【问题标题】:How to select the <p:dataTable> by CSS?如何通过 CSS 选择 <p:dataTable>?
【发布时间】:2012-08-25 01:26:25
【问题描述】:

首先我使用的是&lt;h:dataTable&gt;,我对此没问题,但之后我需要更多功能,所以我开始使用 Primefaces 并使用它的&lt;p:dataTable&gt;。一切正常,但我在表格上应用的 CSS 停止工作。然后我发现&lt;p:dataTable&gt;是先创建一个&lt;div&gt;,然后在&lt;div&gt;里面,是创建一个&lt;table&gt;

 <div id="tcform:tclist" .......>
       <table role="grid">....</table>
 </div>

但是&lt;h:dataTable&gt; 只创建 HTML &lt;table&gt;。现在我想知道如何获取表的 ID,或者是否有任何解决方案可以访问该表。我也想知道&lt;h:dataTable&gt;&lt;p:dataTable&gt;为什么不一样。

【问题讨论】:

  • 如果你在你的表单上做 prependId="false" 你可以像这样访问表格#tclist.ui-datatable table {....} 如果你想访问 tr 例如你可以做#tclist tr{...} 如果你有预先准备好的表格我猜你可以试试#tcform:tclist tr{...}#tcform\\:tclist tr{...}

标签: css jsf jsf-2 datatable primefaces


【解决方案1】:

如果您想以通用方式设置表格样式,只需相应地更改 CSS 选择器即可。 &lt;p:dataTable&gt;&lt;table&gt; 可以由 ui-datatable 类选择。

.ui-datatable td {
    background: pink;
}

如果您只想以特定方式设置特定表格的样式,请给它一个类名,以便您可以按类名而不是 ID 进行选择。

例如

<p:dataTable styleClass="foo">

可以被.ui-datatable.foo {} 覆盖。例如

.ui-datatable.foo td {
    background: hotpink;
}

【讨论】:

  • 为此我应该做 prependId="false" 吗?
  • 不,您在这里不是按 ID 选择的。按 ID 选择通常只对整个站点共享的主要布局组件有意义,例如页眉/菜单/内容/页脚。它们通常不在表格或表格中。
  • 我可以通过在我的 javascript 文件中执行此操作来获取 HTML (由 primefaces DataTable 创建)-> ('ui-datatable').dataTable({.....});
猜你喜欢
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-19
  • 1970-01-01
  • 2013-09-07
相关资源
最近更新 更多