我有以下显示数据。
<p:dataGrid
id="employeeList"
var="employee"
rowIndexVar="rowIndex"
value="#{sampleController.employeeRecords}"
columns="1"
layout="grid"
rows="10"
paginator="true"
emptyMessage="No items to display..." > ..... </p:dataGrid>
我的
controller(sampleController)
有以下getter setter
private List<EmployeeVo> employeeRecords;
public List<EmployeeVo> getEmployeeRecords()
{
return employeeRecords;
}
public List<EmployeeVo> setEmployeeRecords()
{
return employeeRecords;
}
并有另一种方法将值设置为
employeeRecords
如下所示
public void loadEmployee(){
List<EmployeeVo> list = //call to DB
setEmployeeRecords(list);
}
一切正常,除了分页。每当我点击
page numbers
时,控件不止一次进入 getter 方法 (setEmployeeRecords()),列表中的值被操纵,最终结果不正确。
为什么点击页码会带我到 getter 方法,它不是在客户端级别管理的吗?
注意我没有做任何getter或setter。它们是普通的 getter 和 setter。设置值仅在以下情况下完成一次:
public void loadEmployee(){
List<EmployeeVo> list = //call to DB
setEmployeeRecords(list);
}
每当我点击页码时,电话也永远不会打到那里。