我正在使用带过滤功能的数据表。这是表格声明:
<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>
谢谢!
答案 0 :(得分:1)
您可以在添加新行的ajax /按钮的oncomplete方法中触发过滤:
oncomplete='tableWidgetVar.filter();'