PrimeFaces如何在filterBy组件上取消事件监听器

时间:2011-05-26 18:01:53

标签: javascript jsf-2 primefaces

我在列上使用带有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>

1 个答案:

答案 0 :(得分:0)

我不确定我知道答案,但这里有一些事情要尝试。我认为这是次要的2.2。

  1. 我认为动态属性不再用于 p:datatable

  2. f:ajax 元素中,尝试使用 render =“loggerTable”而不是 @form

    < / LI>