【问题标题】:PrimeFaces how to cancel event listener on filterBy componentPrimeFaces如何取消filterBy组件上的事件监听器
【发布时间】:2011-09-02 20:05:37
【问题描述】:

我在列上使用带有 filterBy 的 PrimeFaces 数据表。我还有一个链接,单击该链接会清空基础表。一切正常,直到我过滤某些东西。如果我随后清除基础表,该表仍会从缓存中显示,并且在我更改 filterBy 值之前它不会更新为空表。似乎 filterBy 输入组件仍在保留事件侦听器。这是我的代码片段:

<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>

【问题讨论】:

    标签: javascript jsf-2 primefaces


    【解决方案1】:

    我不确定我是否知道答案,但这里有一些可以尝试的方法。我认为这是 primefaces 2.2。

    1. 我认为 p:datatable 中不再使用动态属性。

    2. 在您的 f:ajax 元素中,尝试 render="loggerTable" 而不是 @form

    【讨论】:

    • 感谢您的回复。不幸的是,当我进行修改时,行为没有改变。我正在使用 Primefaces 2.2.1。平
    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2017-09-14
    相关资源
    最近更新 更多