在Primefaces中,通过过滤向表中添加行

时间:2014-06-02 08:08:33

标签: primefaces filter datatable

我正在使用带过滤功能的数据表。这是表格声明:

<p:dataTable id="#{tblId}" var="p" editable="true" editMode="cell"
resizableColumns="true" rowIndexVar="rowIndex" selectionMode="multiple"
rowKey="#{p.id}" selection="#{ppselection}"
emptyMessage="No Params in table" value="#{tblValue}" scrollable="true"
style="height:100%" sortMode="multiple" styleClass="#{styleClass}"
filteredValue="#{filteredParams}">

向表中添加新行时,我希望它已根据当前过滤器显示。即,如果过滤器是“aa”,行名称是“aabbcc”,那么我希望它显示,但如果行名称是“bbcc”,那么我不希望它显示。现在,我想出的就是决定是否要手动将其添加到filteredParams列表中。 这是表中其中一列的示例,尽管所有的库都可以过滤:

    <p:column width="15%" id="ParameterColumn"  headerText="Parameter" sortBy="#{p.name}"
    filterBy="#{p.name}" filterMatchMode="contains">
    <p:cellEditor id="Parameter">
        <f:facet name="output">
            <h:outputText id="param_name" value="#{p.name}" />
        </f:facet>
        <f:facet name="input">
            <p:inputText id="nameInput" value="#{p.name}" style="width:99%"
                validator="#{p.validateParamName}">
                <p:ajax event="change"
                    update=":main_tabs:paramForm:ParamTbl, :main_tabs:paramForm:SplitedParamTbl" />
            </p:inputText>
            <p:messages for="nameInput" display="tooltip" />
        </f:facet>
    </p:cellEditor>
</p:column>

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在添加新行的ajax /按钮的oncomplete方法中触发过滤:

oncomplete='tableWidgetVar.filter();'