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ますp:watermarkforElementhtml入力コンポーネントのjqueryセレクターを含むべき仕様状態。しかし、これらのスレッドhereおよびhereによると、forElementは厳密にclient IDは html 入力コンポーネントのみである必要があります。

したがって、次のことができます。

<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 に答える