我在列上使用带有filterBy的PrimeFaces dataTable。我还有一个链接,当单击时,清空基础表。一切正常,直到我过滤一些东西。如果我然后清除基础表,表仍然从缓存中显示,它将不会更新到空表,直到我更改filterBy值。似乎filterBy输入组件仍然保留在事件监听器上。这是我的代码snipet:
<h:form id="logFormId" prependId="false">
<p:dataTable value="#{logger.logLines}" var="logMsg"
id="loggerTable" dynamic="false" widgetVar="logTable">
<f:facet name="header">
<h:commandLink action="#{logger.clearList}">
<f:ajax render="@form" execute="@form" />
</h:commandLink>
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="#{msgs.LoggerDate}" />
</f:facet>
<h:outputText value="#{logMsg.dateText}" />
</p:column>
<p:column sortBy="#{logMsg.source}"
filterBy="#{logMsg.source}" filterMatchMode="contains" >
<f:facet name="header">
<h:outputText value="#{msgs.LoggerSource} " />
</f:facet>
<h:outputText value="#{logMsg.source}" />
</p:column>
</p:dataTable>
</h:form>
答案 0 :(得分:0)
我不确定我知道答案,但这里有一些事情要尝试。我认为这是次要的2.2。
我认为动态属性不再用于 p:datatable 。
在 f:ajax 元素中,尝试使用 render =“loggerTable”而不是 @form 。
< / LI> 醇>