2013-10-17 50 views
1

我使用PF 4.0,我有一個數據表是懶惰加載,我試圖將過濾器文本框添加到「名稱」列,但文本框沒有出現。我錯過了什麼?Primefaces - 數據表列過濾器文本框不出現

... 
<p:dataTable var="user" value="#{userGroupBacking.users}" editable="true" id="userTable" paginator="true" rows="20" 
    paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}" lazy="true" 
    filteredValue="#{userGroupBacking.filteredUsers}" > 

    <p:ajax event="rowEdit" listener="#{userGroupBacking.onEdit}" /> 

    <p:column headerText="User" filterBy="#{user.name}" filterMatchMode="contains"> 
     <h:outputText value="#{user.name}" /> 
    </p:column> 
... 

支持bean:

@ManagedBean(name="userGroupBacking") 
@ViewScoped 
public class UserGroupBacking { 

@ManagedProperty(value="#{accessBacking}") 
    private AccessBacking accessBacking; 
    public void setAccessBacking(AccessBacking accessBacking) { 
     this.accessBacking = accessBacking; 
    } 

@PostConstruct 
    public void init() { 
     this.ds = databaseBacking.getDs(); 
     if(isLoggedIn()) { 
      loadData(); 
     } 
    } 

/** 
    * Checks that the user is logged in 
    * @return 
    */ 
    public boolean isLoggedIn() { 
     return accessBacking.isHasAccess(); 
    } 

public LazyDataModel<User> getUsers() { 
     return users; 
    } 
    public List<Group> getGroups() { 
     return groups; 
    } 
    public List<Group> getSelectedGroups() { 
     return selectedGroups; 
    } 
    public List<SelectItem> getGroupsAsSelectItems() { 
     return groupsAsSelectItems; 
    } 
    public List<SelectItem> getUsersAsSelectItems() { 
     return usersAsSelectItems; 
    } 
    public String getNewGroup() { 
     return newGroup; 
    } 
    public void setNewGroup(String newGroup) { 
     this.newGroup = newGroup; 
    } 
    public List<User> getFilteredUsers() { 
     return filteredUsers; 
    } 
    public void setFilteredUsers(List<User> filteredUsers) { 
     this.filteredUsers = filteredUsers; 
    } 
} 
+0

你的問題.. – kark

+0

過濾器框甚至沒有顯示甚至輸入任何東西。 – Catfish

+0

@Catfish - 你有沒有試過PF的舊版本? – kolossus

回答

6

我想通了。看來,在PF 4.0,你需要的filterBy代碼改變從:

<p:column headerText="User" filterBy="#{user.name}" filterMatchMode="contains"> 
    <h:outputText value="#{user.name}" /> 
</p:column> 

到:只有濾波的bean類right..Whether您的dataTable檢索值

<p:column headerText="User" filterBy="name" filterMatchMode="contains"> 
    <h:outputText value="#{user.name}" /> 
</p:column> 
0

我只是好奇,這是你有實際的代碼在你的頁面。因爲這裏面應該<p:cellEditor>包裹起來,如圖primefaces展示

http://www.primefaces.org/showcase-labs/ui/datatableRowEditing.jsf

一些東西一樣

<p:column headerText="Model" style="width:30%"> 
      <p:cellEditor> 
       <f:facet name="output"> 
        <h:outputText value="#{car.model}" /> 
       </f:facet> 
       <f:facet name="input"> 
        <p:inputText value="#{car.model}" style="width:100%"/> 
       </f:facet> 
      </p:cellEditor> 
     </p:column> 
+0

我有另一列中有p:cellEditor,但這個特定的列我只是試圖讓過濾器文本框出現。 – Catfish

相關問題