如何实施"包含"过滤丰富的面孔3.3 richdatatable

时间:2018-06-11 14:03:02

标签: filter richfaces contains jsf-1.2

我正在使用传统项目中的jsf 1.2和rich faces 3.3。我的要求是提供"包含"过滤富数据表中的列。我使用filterExpression ... containsIgnoreCase属性,但它不适用于富脸3.3。我终于使用以下代码剪切实现它: -

 <rich:column filterMethod="#{myBean.filterStudent}">
     <f:facet name="header">
        Name
     <h:panelGroup>
        <h:outputText value="Name" />
    <br />
    <h:inputText value="#{myBean.filterString}" id="input">

   <a4j:support event="onkeyup" ignoreDupResponses="true"
         requestDelay="700" reRender="table" focus="input" />
    </h:inputText>
     </h:panelGroup>
 </f:facet>
 <h:outputText value="#{studentList.name}" />
  </rich:column>
.................myBean..........................................
private String filterString = "";
// getter and setter method for filterString

public boolean filterStudent(Object current) {
Student currentStudent = (Student)current;
if (filterString.length()==0) {
  return true;
}
if (currentStudent.getName().startsWith(filterString)) {
  return true;
} 
else {
 return false; 
}
}

但是该列表就像2800名学生一样,每当用户按下inputText中的一个键时,控制流到bean,列表就会被提取。这会减慢页面的大时间。是否有更好的替代方案可以过滤列表&#34;在内存中#34;。

0 个答案:

没有答案