我是新面孔。我正在学习并尝试使用数据表开发一些示例代码。数据表正在呈现。当我尝试使用过滤器选项时,它无法正常工作。
如果任何人可以帮助解决问题或使用过滤提供数据表的简单示例,那就太棒了。
我已经尝试过在primefaces.org网站上给出的例子,但它没有成功。此外,我不确定是否需要在后端编写任何代码来执行过滤器,或者需要在index.xhtml文件中进行任何更改。
我提前感谢您的帮助。
请在下面找到我正在尝试的示例代码...
<div xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<f:view>
<p:dataTable id="dataTable" var="car" value="#{carBean.cars}">
<p:column id="modelColumn" filterBy="model" headerText="Model" footerText="contains" filterMatchMode="contains" >
<h:outputText value="#{car.model}" />
</p:column>
</p:dataTable>
</f:view>
</div>
CarBean.java
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ManagedBean;
@ManagedBean(name = "carBean")
@SessionScoped
public class CarBean implements Serializable{
private List<Car> cars = null;
public List<Car> getCars() {
return cars;
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
public CarBean()
{
cars = new ArrayList<Car>();
cars.add(new Car("swift","2013","maruti","black"));
cars.add(new Car("i20","2014","hyundai","grey"));
cars.add(new Car("figo","2012","ford","red"));
}
}
import java.io.Serializable;
public class Car implements Serializable{
private String model;
private String year;
private String manufacturer;
private String color;
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Car(String model, String year, String manufacturer, String color)
{
this.model = model;
this.year = year;
this.manufacturer = manufacturer;
this.color = color;
}
}
答案 0 :(得分:0)
如果您遵循此示例:
http://www.primefaces.org/showcase/ui/data/datatable/filter.xhtml
您需要在数据表上使用filteredValue属性。它应该只指向带有getter和setter的bean上的List。不要填写这个列表,PF会在你背后做到这一点。
你也错过了widgetVar属性,但不确定它的作用。