2017-08-19 2 views
0

Dies ist meine xhtml SeitePrimefaces globale Suche in Datentabelle nicht funktioniert

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://java.sun.com/jsf/core"> 

    <h:body> 
    <ui:composition template="#{templateSelection.selectedTemplate}"> 
     <ui:define name="docTitle">User Management</ui:define> 
     <ui:define name="body"> 

     <h:form> 

      <p:dataTable id="usrDT" var="usr" value="#{userListController.userBeans}" 
         rows="15" paginator="true" 
         rowIndexVar="row" 
         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
         paginatorPosition="bottom" 
         filteredValue="#{userListController.filteredUserBeans}" 
      > 
      <f:facet name="header"> 
       User Management 
       <p:outputPanel> 
       <h:outputText value="Search all fields:"/> 
       <p:inputText id="globalFilter" onkeyup="PF('usrDT').filter()" style="width:150px" 
          placeholder="Enter keyword"/> 
       </p:outputPanel> 
      </f:facet> 
      <p:column filterBy="#{row + 1}" headerText="Sl No" width="4%"> 
       <h:outputText value="#{row + 1}"/> 
      </p:column> 
      <p:column filterBy="#{usr.userName}" headerText="User Name" width="30%"> 
       <h:outputText value="#{usr.userName}"/> 
      </p:column> 
      <p:column filterBy="#{usr.userLoginId}" headerText="User ID" width="8%"> 
      <h:outputText value="#{usr.userLoginId}"/> 
      </p:dataTable> 
     </h:form> 
     </ui:define> 
    </ui:composition> 
    </h:body> 
</html> 

Das ist meine Bohne

@ManagedBean 
@ViewScoped 
public class UserListController { 

    @ManagedProperty("#{userServiceLayer}") 
    private UserServiceLayer userServiceLayer; 
    private List<UserBean> userBeans; 
    private List<UserBean> filteredUserBeans; 

    @PostConstruct 
    public void init() { 
     userBeans = userServiceLayer.getAllUserListForSearch(state, sessionScId); 
    } 

    public List<UserBean> getFilteredUserBeans() { 
     return filteredUserBeans; 
    } 

    public void setFilteredUserBeans(List<UserBean> filteredUserBeans) 
    { 
     this.filteredUserBeans = filteredUserBeans; 
    } 

    public List<UserBean> getUserBeans() { 
     return userBeans; 
    } 

    public void setUserBeans(List<UserBean> userBeans) { 
     this.userBeans = userBeans; 
    } 
} 

ich eine Datatable bin zu schaffen, die die Benutzerliste zeigt, und ich möchte hier Suche hinzufügen Funktionalität. Ich habe dies wie hier beschrieben hinzugefügt https://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml. Suchen in der einzelnen Spalte funktioniert gut ... Aber die globale Suche funktioniert nicht ....

+0

Ihre Datentabelle gibt an 'id = "usrDT"', wo das Beispiel verwendet die 'widgetVar' Attribut, nicht' id'. –

+0

'', müssen Sie den Wert für Ihre 'filterMatchMode' setzen – Kaizen

Antwort

0

Es gibt ein Attribut namens widgetVar, das Ihnen hilft, das oben genannte Problem zu lösen. Sie haben wie widgetVar in Ihrer Datentabelle widgetVar = „usrDT“ hinzufügen unter verwenden

wenn Sie den Filter löschen möchten (es Filteroption in Ihrem Raster ermöglicht), dann können Sie Request Code unten verwenden .getCurrentInstance(). execute ("PF ('usrDT'). clearFilters()");

HINWEIS: widgetVar Wert userdefined

+0

Danke ... . gelöst –

Verwandte Themen