p: dataTable FilterValue всегда null - PullRequest
       1

p: dataTable FilterValue всегда null

0 голосов
/ 17 сентября 2018

у меня есть следующий код:

<h:form enctype="multipart/form-data">
    <p:dataTable 
            var="report" 
            value="#{businessDomain.value.reportEntities}" 
            style="padding:0px; margin:0px; border:0px;"
            filteredValue="#{businessDomain.value.filteredReportEntities}" 
            scrollable="true" scrollHeight="200" paginator="false" rows="999"
            rowKey="#{report.id}" rowIndexVar="rowIndex" selection="#{reportController.entity}" selectionMode="single">
        <p:ajax event="rowSelect" listener="#{reportController.onRowSelect}" update="@(form)"/>
        <p:column name="name" filterBy="#{report.name}" filterMatchMode="contains">
            <tp:outputText object="#{report}"/>
            <h:outputText value=" (#{myWithFailedStatusI18nCategoryModel.i18nCodeMap[report.status]})" rendered="#{report.status != 'A'}"/>
        </p:column>
        <p:column name="button" style="width:20px;">
            <p:commandButton update="@(form)" action="#{controller.getPathToDetailForm}"
                    icon="ui-icon-wrench" styleClass="tpTableButton"
                    rendered="#{reportController.isEntityUpdateable and  organizationController.authenticatedUserOrganization.id == report.organization.id}">
                <f:setPropertyActionListener target="#{reportController.entity}" value="#{report}"/>    
            </p:commandButton>
        </p:column>
    </p:dataTable>
</h:form>

в контроллере для этого представления у меня есть класс (который стоит за значением businessDomain.value):

public class ReportCategory{
   ...
   private List<ReportEntity> reportEntities;
   private List<ReportEntity> filteredReportEntities;
   ...

   public List<ReportEntity> getReportEntities() {
       return reportEntities;
   }

   public List<ReportEntity> getFilteredReportEntities() {
      getLogger().info("getFilter called")
      return filteredReportEntities;
   }

   public void setFilteredReportEntities(List<ReportEntity> filteredReportEntities) {
      getLogger().info("setFilter called: "+filteredReportEntities);
      this.filteredReportEntities = filteredReportEntities;
   }
}

начальный безс фильтрацией все нормально .. объекты отображаются правильно.Но если я что-то наберу в фильтре, я получу вызов getFilter и setFilter .. где значение параметра setFilter всегда равно нулю:

getFilter called
setFilter called: null

Я следовал примеру простых лиц https://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml

(я использую простые лица 5.3.14) Я нашел этот вопрос, но я не очень помог мне, потому что im filterValue для dataTable в Primefaces 5.3 всегда null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...