[英]PrimeFaces DataTable - Filtering (problem running the example)
我在PrimeFaces中尝试这个例子。 我只了解代码的前几行。
<p:dataTable var="car" value="#{tableBean.carsSmall}"
emptyMessage="No cars found with given criteria">
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter" onkeyup="carsTable.filter()" style="width:150px" />
</p:outputPanel>
</f:facet>
它可以在这里显示一个搜索框。 扩展代码行将添加列并使用数据填充列。 我不明白
<p:column filterBy="#{car.model}"
headerText="Model" footerText="contains"
filterMatchMode="contains">
<h:outputText value="#{car.model}" />
</p:column>`
什么是#{car.model}
? 它没有在java类中指定任何调用model
。 如何更改我的java类以显示列?
表达式变量car
被声明为dataTable的var
属性。 这意味着dataTable组件中的每个唯一行都可以由变量car
以表达式语言引用。
car
的model
属性是Serializable POJO Car的Bean属性。 假设Car类具有属性model
意味着getter getModel()
和setter setModel()
。
<p:column>
的filterBy
属性指定此列标题将具有其自己的唯一过滤器文本字段,并且它将过滤car.model
属性上的行。
属性filterMatchMode
指定匹配条件contains
,这意味着列入过滤器字段的内容的任何文本出现将等同为匹配记录。 有关filterMatchMode选项的完整列表,请参阅Primefaces指南。
private List<Car> carsSmall;
carsSmall是一个包含Car
对象的列表。 Car
进口到这里:
import org.primefaces.examples.domain.Car;
Car是支持bean,它有一个属性model
,包含汽车的模型作为String
。
汽车#{car.model}
在这里定义:
<p:dataTable var="car"...>
dataTable迭代列表carsSmall
中的每个元素,您可以使用var
属性(here: car
)中给出的名称访问当前元素。 所以#{car.model}
调用当前Car
对象的getModel()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.