首页 文章

如何在datatable中实现自定义数据过滤器

提问于
浏览
0

我是jsf的新手,想知道如何在primefaces数据表中执行数据过滤 . 我希望当用户开始在搜索文本字段上键入以过滤所有记录并最终在搜索文本字段中保留该值时 . 如何在jsf数据表中实现这一点我使用的是primefaces 3.5 . 这是我的数据表和相应的托管bean .

<p:tabView dynamic="true" id="tabview" cache="true" style="min-height: 500px;">
                    <p:tab title="first Tab">

                             <h:form >
                                        <p:dataTable paginator="true" value="#{mybean.allusers}" var="user" id="user_table" widgetVar="userTable">
        <p:outputPanel>
            <h:outputText value="Search all fields:" />
            <p:inputText id="globalFilter" onkeyup="PF('userTable').filter()" style="width:150px" placeholder="Enter keyword"/>
        </p:outputPanel>
                                      <p:column>
                                          <f:facet name="header">
                                              <h:outputText value="Name"/>
                                          </f:facet>
                                          <h:outputText value="#{user.name}"/>
                                      </p:column>
                                      <p:column>
                                          <f:facet name="header">
                                              <h:outputText value="Id"/>
                                          </f:facet>
                                          <h:outputText value="#{user.id}"/>
                                      </p:column>
                                  </p:dataTable>
                            </h:form


                     </p:tab>
    </p:tabView >


import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import javax.faces.context.FacesContext;
@ManagedBean
@ViewScoped
        private  List<Users> filteredUsers;
      public List<RevenueGroup> getFilteredUsers() {
    return filteredGroups;
     }
public void setFilteredGroups(List<Users> filteredUsers) {
    this.filteredUsers = filteredUsers;
}
public List<Users> getAllusers() {
if(grps==null)
{
 grps=UserDao.getUser();
}
 return grps;
}

1 回答

  • 0

    Primeface提供了内置数据表过滤器 . 请查看以下链接

    DataTable - Filter

    请参阅同一页面中的FilterView.java,您可以在其中查看过滤器的实现方式 .

    还要考虑升级primeface,最新版本是5.3 .

相关问题