Noo*_*oor 8 java gwt widget cell
我坚持使用gwt cell pager,我想将其附加到单元格表中.我这样设置:
List <ForumMessage> AllMessages=populated from an rpc;
CellTable cellTable = new CellTable <ForumMessage>();
simplePager = new SimplePager();
cellTable.addColumn(ColumnM);
cellTable.setRowData(0,AllMessages);
simplePager.setDisplay(cellTable);
simplePager.setPageSize(3);
Run Code Online (Sandbox Code Playgroud)
ColumnM已正确定义
但是当显示单元格表时,前三行被正确显示,但是当我按下下一行时,没有显示任何行,单元格表就像加载一样.现在,从该页面开始,如果我再次按下,页面就像加载一样.
现在,另一个问题是,我可以不断按下,即使只有8行,页面数量也会不断增加
LIN*_*N78 15
当我第一次尝试使用单元格表进行分页时,我遇到了同样的问题.它的实现方式是,即使在调用setRowSize之后,寻呼机也不会对您的数据集做任何假设.这是以这种方式构建的,因此您可以执行延迟加载.
一旦你知道有多少行可用,你需要调用cellTable.setRowCount(int),这将解决你的问题,寻呼机继续前进.现在,要实现分页,您还需要将一个RangeChangeHandler添加到单元格表以设置数据.以下是一些示例代码:
@Override
public void onRangeChange(RangeChangeEvent event)
{
Range range = cellTable.getVisibleRange();
int start = range.getStart();
int length = range.getLength();
List<ForumMessage> toSet = new ArrayList<ForumMessage>(length);
for (int i = start; i < start + length && i < AllMessages.size(); i++)
toSet.add((ForumMessage) AllMessages.get(i));
cellTable.setRowData(start, toSet);
}
Run Code Online (Sandbox Code Playgroud)
它可能更容易使用ListDataProvider<T>,而不是仅仅提供列表。所以,你的例子是:
// get the list
List <ForumMessage> AllMessages=populated from an rpc;
// create table
CellTable cellTable = new CellTable <ForumMessage>();
cellTable.addColumn(ColumnM);
// create pager
simplePager = new SimplePager();
simplePager.setDisplay(cellTable);
simplePager.setPageSize(3);
// create data provider
ListDataProvider<ForumMessage> dataProvider = new ListDataProvider<ForumMessage>();
dataProvider.addDataDisplay(cellTable);
dataProvider.setList(AllMessages);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14335 次 |
| 最近记录: |