0

我有列过滤器。

在这里我想在过滤器中显示水印(如图红圈所示)

我正在使用素面 3.4

我试过这个

<h:form id="parametersListForm" prependId="false">      
    <p:dataTable id="parameteresList" value="#{parameterController.lstParameter}" 
                     var="parameters" selectionMode="single"  
                     selection="#{parameterController.selectedParameter}" 
                     styleClass="tnt-main-table"> 

            <p:ajax event="rowSelect" update=":parameterDetailsForm"
                    listener="#{parameterController.onParametersRowSelect}" />

      <p:column id="colomnRefType" filterBy="#{parameters.beRefType}" 
                 headerText="#{msgs['parameters.beRefType.label']}"
                 filterMatchMode="contains">
                                <h:outputText value="#{parameters.beRefType}"/>
            <p:watermark value="Ref Type" 
                         forElement= ":parameteresList:colomnRefType_filter">
             </p:watermark>
        </p:column>
      </p:dataTable>              
    </h:form>

在此处输入图像描述

我怎样才能做到这一点?

4

3 回答 3

2

有一个属性forElement。应包含 html 输入组件的 jquery 选择器的p:watermark规范状态。forElement但是根据这里这里的这些线程,forElement严格来说应该只是client IDhtml 输入组件的。

因此,您可以执行以下操作:

<p:dataTable id="battingStyleTable" ... ... ..>

    <p:column id="myColumn"
        filterBy="#{battingStyle.battingStyleString}" 
        filterMatchMode="contains">

        <f:facet name="header">Name</f:facet>
        <h:outputText value="#{battingStyle.battingStyleString}" />

        <p:watermark value="Watermark text"
            forElement='battingStyleTable:myColumn_filter'></p:watermark>
        <!-- Please note that the prependId of my form is false, and id of the datatable is battingStyleTable and id of the column is myColumn. Thats why the id of the textfield of the filter will be battingStyleTable:myColumn_filter. Please change it accordingly. If you can't do prependId="false" to your form then you must include form id in the start also, like myFormId:myDatatableId:myColumnId_filter -->
    </p:column>
    ...............
    ..........
    ................
</p:dataTable>
于 2013-01-25T14:35:14.000 回答
1

终于得到解决方案。

<h:form id="parametersListForm">      

    <p:dataTable id="parameteresList" value="#{parameterController.lstParameter}"
                 var="parameters" styleClass="tnt-main-table"> 

    <p:column id="columnRefType" filterBy="#{parameters.beRefType}" >
        <h:outputText value="#{parameters.beRefType}" />
        <p:watermark forElement="parametersListForm:parameteresList:columnRefType:filter"
                     value="#{msgs['parameters.beRefType.label']}"/>  
        </p:column>
     </p:dataTable>              
</h:form>

希望它对某人有所帮助:)

于 2013-01-31T09:30:30.577 回答
1

尝试使用此语法来处理过滤器字段。使用 Primefaces 6.1 为我工作。

<h:form id="f_myForm">
  <p:dataTable id="dt_myTable">
    <p:column id="col_myCol>
      <h:outputText id="ot_myText" />
      <p:watermark for="@(#f_myForm\\:dt_myTable\\:col_myCol\\:filter)" value="MyPlaceholder" />
    </p:column>
  </p:dataTable>
</h:form>
于 2018-02-19T16:15:53.700 回答