11

我有 ap:treeTable 并且树内容都在一列中。树是一个共享组件,所以我的一些页面需要列标题,而有些则不需要。在 columnHeader 为空的页面中,它为列标题创建了一个空行,这是我不想要的。我确实想要列内容,而不是没有列标题时的标题。

我怎样才能解决这个问题?任何指针/想法都会很棒。谢谢!

4

6 回答 6

16

您可以通过将 thead display 属性设置为 none 来使用自定义 CSS 解决这个问题:

例子:

div[id="testForm:first"] thead {
    display:none;
}

如果您的 JSF 与此类似:

<h:form id="testForm">
    <p:dataTable id="first">
        ...
    <p:/dataTable>
</h:form>
于 2012-10-10T05:07:26.347 回答
8

如果您<p:dataTable>使用这样的列宽

<p:dataTable styleClass="myTable">
   <p:column width="100">

并且您使用以下 CSS 隐藏列标题

.myTable thead {
    display:none;
}

您还将丢失您设置的列宽


隐藏列标题并保持列宽的解决方案

.myTable thead th { 
    border: none !important; 
    background: none !important; 
}
于 2016-02-05T19:33:57.860 回答
5

更正式的解决方案:

标签:

<p:treeTable styleClass="tree-table-no-header">

风格:

.tree-table-no-header thead {
    display: none;
}
于 2015-06-25T17:59:51.153 回答
1

您可能会发现您需要更具体地使用样式选择器:

 div[id$="myTableId"]>div>table>thead { display:none; }

这也消除了引用您的表单 ID 的需要。'$' 以通配符开头,'>' 表示仅选择直接子级。请参阅http://www.w3schools.com/cssref/css_selectors.asp以获得非常好的 CSS 选择器参考。

于 2014-09-22T20:45:34.017 回答
1

隐藏标题(与其他答案相同):

.hide-table-header thead {
    display: none;
}

...并指定列宽:

<p:dataTable styleClass="hide-table-header">
        <p:column style="width: 80px">

这些不适用于 reflow="true" 表。

对我来说,边框:无,背景:无建议在表格上方留下一个空白空间,并隐藏表格的左侧边框。

于 2016-11-05T07:53:50.650 回答
0

将此代码添加到您的 css3 文件中

** Remove the header from the dataTable**/
.ui-datatable.borderless thead {
  display: none;
}

/** Remove the border from the dataTable **/
.ui-datatable.borderless tbody,
.ui-datatable.borderless tbody tr,
.ui-datatable.borderless tbody td {
    border-style: none;
    }

然后从 xhtml 文件中调用此代码,如下所示:

<p:dataTable styleClass="borderless">
于 2017-04-13T13:13:26.507 回答