我正在尝试实现单元格列表,并在我的单元格列表中插入来自服务器的数据,一切都在单元格中正常工作但现在我必须切换到无法正常工作的单元格
来自GWT Show案例我做了这个课程
public class EmployerJobCell extends AbstractCell<EmployerJobs> {
@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
EmployerJobs value, SafeHtmlBuilder sb) {
if (value == null) {
return;
}
sb.appendHtmlConstant("<table>");
// Add the contact image.
sb.appendHtmlConstant("<tr><td rowspan='3'>");
sb.appendHtmlConstant("</td>");
// Add the name and address.
sb.appendHtmlConstant("<td style='font-size:95%;'>");
sb.appendEscaped(value.getJobTitle());
sb.appendHtmlConstant("</td></tr><tr><td>");
sb.appendEscaped(value.getJobLevel());
sb.appendHtmlConstant("</td></tr></table>");
}
}
在我的视图课程中,我做了这个
EmployerJobCell jobCell = new EmployerJobCell();
celllist = new CellList<EmployerJobs>(jobCell);
celllist.setPageSize(5);
verticalpanel.add(celllist);
但我的观点并没有得到任何结论。
我是否也必须使用setRowData?
如果是,我将如何获取我的数据
ArrayList<EmployerJobs > values = new ArrayList<EmployerJobs>();
celllist.setRowData(values);
就像我将在列表中添加的内容
values. ??
答案 0 :(得分:0)
CellList
与CellTable
基本相同 - 都会获取数据列表,并使用Cell
绘制数据。主要区别在于CellList
只绘制一个包含每种内容的单元格,而CellTable
可以绘制几个,每个读取数据与模型对象不同。
两者都实现HasData
,允许您提供数据和监视器选择等。因此,在这两种情况下,您应该在每个上调用widget.setRowData(index, data)
来获取内容。简而言之,要完全使用名为CellList
的{{1}}替换给定List
的内容,请执行以下操作:
values
或者更简单地说,使用List<EmployerJobs> values = ...
CellList<EmployerJobs> cellList = ...
cellList.setRowCount(0);// clear out existing rows
cellList.setRowData(0, values);// apply new rows
,
AbstractHasData.setRowData(List)
这可以让你到达显示数据的程度。
使用分页会使这更复杂一些 - 通常您使用cellList.setRowData(values); //clear and apply new rows
之类的分页窗口小部件,而不是向SimplePager
提供数据,而是向数据提供者提供数据,而数据提供者又将数据提供给数据提供者基于寻呼信息到小部件。有关如何通过将数据交给HasData
进行管理,让DataProvider
允许用户决定他们想看看。