Jsf Primefaces-数据表列筛选器文本框未出现
我使用的是PF 4.0,我有一个数据表是延迟加载的,我试图在“name”列中添加一个过滤器文本框,但是文本框没有出现。我错过了什么Jsf Primefaces-数据表列筛选器文本框未出现,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,我使用的是PF 4.0,我有一个数据表是延迟加载的,我试图在“name”列中添加一个过滤器文本框,但是文本框没有出现。我错过了什么 ... <p:dataTable var="user" value="#{userGroupBacking.users}" editable="true" id="userTable" paginator="true" rows="20" paginatorTemplate="{CurrentPageReport} {FirstPageLink}
...
<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;
}
}
@ManagedBean(name=“userGroupBacking”)
@视域
公共类UserGroupBacking{
@ManagedProperty(value=“#{accessBacking}”)
私人支持;
公共无效setAccessBacking(AccessBacking-AccessBacking){
this.accessBacking=accessBacking;
}
@施工后
公共void init(){
this.ds=databaseBacking.getDs();
if(isLoggedIn()){
loadData();
}
}
/**
*检查用户是否已登录
*@返回
*/
公共布尔值isLoggedIn(){
return accessBacking.isHasAccess();
}
公共LazyDataModel getUsers(){
返回用户;
}
公共列表getGroups(){
返回组;
}
公共列表getSelectedGroups(){
返回SelectedGroup;
}
公共列表GetGroupsSelectItems(){
返回组选择项目;
}
公共列表getUsersAsSelectItems(){
返回UsersSelectItems;
}
公共字符串getNewGroup(){
返回新组;
}
公共void setNewGroup(字符串newGroup){
this.newGroup=newGroup;
}
公共列表getFilteredUsers(){
回流过滤器;
}
公共void setFilteredUsers(列表filteredUsers){
this.filteredUsers=filteredUsers;
}
}
我只是好奇,这是您页面中的实际代码吗。因为它应该被包裹在
内,如primefaces showcase所示
比如
<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>
我只是好奇,这是您页面中的实际代码吗。因为它应该被包裹在
内,如primefaces showcase所示
比如
<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>
我想出来了。在PF 4.0中,似乎需要更改filterBy代码:
<p:column headerText="User" filterBy="#{user.name}" filterMatchMode="contains">
<h:outputText value="#{user.name}" />
</p:column>
致:
我想出来了。在PF 4.0中,似乎需要更改filterBy代码:
<p:column headerText="User" filterBy="#{user.name}" filterMatchMode="contains">
<h:outputText value="#{user.name}" />
</p:column>
致:
您的问题只在于筛选是否正确..您的dataTable是否从bean类检索值..筛选框甚至无法在其中键入任何内容。@Catfish-您是否尝试过旧版本的PF?@kolossus我刚刚检查了PF 3.5,它在那里工作。过滤似乎在4.0中被破坏了。@Catfish-figures。4.0仍然是相当前沿的。报告一个错误?你的问题只是过滤正确。。你的dataTable是否从bean类检索值。。过滤器框甚至没有显示出来,无法在其中键入任何内容。@Catfish-你尝试过旧版本的PF吗?@kolossus我刚刚检查了PF 3.5,它在那里工作。过滤似乎在4.0中被破坏了。@Catfish-figures。4.0仍然是相当前沿的。报告错误?我有另一个列,其中有p:cellEditor,但是这个特定列我只是想让filter文本框出现。我有另一个列,其中有p:cellEditor,但是这个特定列我只是想让filter文本框出现。