繁体   English   中英

PrimeFaces DataTable - 过滤(运行示例的问题)

[英]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以表达式语言引用。

carmodel属性是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.java来源

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM