Не удается отфильтровать с помощью вспомогательного компонента - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь отфильтровать столбец с помощью функции вспомогательного компонента.

<p:dataTable id="cars" 
             var="car" 
             value="#{manageAllCoursesBean.courses}"
             filteredValue="#{manageAllCoursesBean.filteredCourse1}"> 

    <f:facet name="header">
        <p:outputPanel>
            <p:inputText id="globalFilter" 
                         onkeyup="PF('carsTable1').filter()" 
                         style="width:250px" 
                         placeholder="Entrer un mot clé"/>
        </p:outputPanel>
    </f:facet>

    <p:column headerText="Name"
              filterBy="#{car.name}"
              sortBy="#{car.name}"
              style="color: #400040; font-size: 10px; width: 150px; text-align:center">
        <h:outputText value="#{car.name}" />
    </p:column>

    <p:column headerText="Teacher"
              filteredBy="#{manageAllCoursesBean.findTeacherByIdCourse(car.id)}"
              sortBy="#{manageAllCoursesBean.findTeacherByIdCourse(car.id)}"
              style="color: #400040; font-size: 10px; width: 175px; text-align:center">
        <h:outputText value="#{manageAllCoursesBean.findTeacherByIdCourse(car.id)}" />
    </p:column>

</p:dataTable>

метод вспомогательного компонента:

public String findTeacherByIdCourse(String courseId) throws IOException
{
    return serviceManager.findTeacherByCourseId(courseId);
}

фильтр с Имя тоже работает. Однако разве это не так с Учитель .

У вас есть какие-нибудь идеи по поводу этого? Большое спасибо.

1 Ответ

0 голосов
/ 17 апреля 2020

Как описано в Primefaces showcase , невозможно использовать метод управляемого компонента с filterBy в p:column.

. Я предложил решение: вы можете преобразовать вашу сущность Course к courseModel и затем добавьте teachers в виде списка строк.

, тогда в вашем управляемом компоненте будет:

List<CourrierModel> lacmss = new ArrayList<CourrierModel>();
DataModel allDatasAssociatedCE = new ListDataModel();

//...

allDatasAssociatedCE.setWrappedData(lacmes);
for(Course c: courses)
{
   CourseModel cme = new CourseModel();
   cme.setCourse(c);
   cme.setTeachers(findTeacherByIdCourse(c));
   lacmss.add(cme);
}

HTH.

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