В моем p: datatable есть столбец с именем Resolution, состоящий из флажка и текста. Если флажок установлен, текст «Разрешен». Если флажок не установлен, текст «Разрешен». У меня также есть поле фильтра, определенное для этого столбца, поэтому отображаются только разрешенные или неразрешенные записи.
Если я выберу «Разрешено», то сниму флажок, запись теперь не разрешена, но она все еще отображается. Так не должно быть, потому что он больше не удовлетворяет фильтру. Мой вопрос: как заставить filter () выполняться после последнего рендеринга f: ajax?
Вот мой фрагмент кода:
<p:dataTable id="measurementHistoryTableId"
value="#{measurements.measurementHistoryList}"
var="meas3"
dynamic="true">
<p:column id="resolutionColumn"
filterBy="#{meas3.resolution}"
filterOptions="#{measurements.measurementHistoryOptions}"
sortBy="#{meas3.resolution}" >
<f:facet name="header">
<h:outputText value="#{msgs.MeasurementResolution}" />
</f:facet>
<h:selectBooleanCheckbox value="#{meas3.resolved}" >
<f:ajax event="click" execute="@all" render="resolutionId @this" />
</h:selectBooleanCheckbox>
<h:outputText id="resolutionId" value="#{meas3.resolution}" />
</p:column>
</p:dataTable>
Я пытался сделать render = @ all, но это не помогло. render = @ form дает мне неопределенный jQuery.datepicker. Я попытался добавить 'onclick = widget_measurementHistoryTableId.filter ()' в 'h: selectBooleanCheckbox', но это заставляет фильтр сработать до выполнения 'f: ajax'.
Спасибо за любую помощь, которую вы мне могли бы оказать.
Бинь