PrimeFaces, как отменить прослушиватель событий для компонента filterBy - PullRequest
0 голосов
/ 26 мая 2011

Я использую таблицу данных PrimeFaces с filterBy для столбца. У меня также есть ссылка, по которой при щелчке очищается базовая таблица. Все отлично работает, пока я не отфильтрую что-то. Если я затем очищу базовую таблицу, таблица будет по-прежнему отображаться из кэша, и она не будет обновляться до пустой таблицы, пока я не изменю значение 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>

1 Ответ

0 голосов
/ 29 мая 2011

Я не уверен, что знаю ответ, но вот несколько вещей, которые можно попробовать. Я предполагаю, что это простые лица 2.2.

  1. Я не думаю, что динамический атрибут больше используется в p: datatable .

  2. В элементе f: ajax попробуйте render = "loggerTable" вместо @form.

...