首页 > 解决方案 > 如何在 Primefaces 数据表列中为过滤框添加工具提示描述

问题描述

我有一个动态生成的 Primefaces 数据表,其中包含一些列,每列都有一个简单的过滤器框。我想为每个 filterBox 放置一个工具提示。

我可以为列标题添加工具提示,但我想要 primefaces 默认过滤器框(不是自定义过滤器)的工具提示。您可以在下面看到列代码:

            <p:columns value="#{cc.columns}" id="dataTableColumn"  var="col" filterBy="#{col.filterExp}" sortBy="#{col.filterExp}" headerText="#{col.header}">
                <h:outputText value="#{data[col.position]}"
                              rendered="#{'java.math.BigDecimal'.equals(col.type) or 'java.lang.Integer'.equals(col.type) or 'java.lang.Long'.equals(col.type)}">
                    <f:convertNumber maxFractionDigits="10"/>
                </h:outputText>
                <h:outputText value="#{data[col.position]}" rendered="#{'java.lang.String'.equals(col.type) or col.type.startsWith('serp3.entity.')}"/>
                <h:outputText converter="JalaliDateConverter" value="#{data[col.position]}" rendered="#{'java.util.Date'.equals(col.type)}"/>
                <p:selectBooleanCheckbox value="#{data[col.position]}" rendered="#{'java.lang.Boolean'.equals(col.type)}" disabled="true"/>
            </p:columns>
            <cc:insertFacet name="footer"/>
        </p:dataTable>

我该怎么做?

标签: primefaces

解决方案


您可以使用watermark而不是工具提示。StyleClass为您设置一个Column并为它添加一个<p:watermark>,如下所示:

 <p:columns value="#{cc.columns}" id="dataTableColumn" styleClass="watermark" var="col" filterBy="#{col.filterExp}" sortBy="#{col.filterExp}" headerText="#{col.header}"/>
                      <p:watermark for="@(.watermark)"  value="filter..."/> 

它为每个过滤器框添加了水印。


推荐阅读