我无法弄清楚为什么我的渲染方法没有被调用。这是我的自定义单元格,它扩展了AbstractCell,细分为最简单的形式。
public class FormHistoryCell<T> extends AbstractCell<T> {
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, T value, SafeHtmlBuilder sb) {
System.out.println("Rendering customer cell...");
if (value == null) {
return;
}
}
}
这是我的代码中的snipet,它创建了一个“FormHistoryCell”实例,并尝试将其添加到CellList中。
@UiFactory
CellList<FormHistoryCell> initList() {
FormHistoryCell formHistoryCell = new FormHistoryCell();
CellList historyList = new CellList<FormHistoryCell>(formHistoryCell);
return historyList;
}
我尝试了不同的东西,例如添加一个带有String参数的构造函数等。调用构造函数,但不执行render方法。看看它扩展的Abstract类,似乎在“setValue”方法中调用了render方法,但是没有看到在其他自定义单元格扩展中调用的位置,其渲染方法似乎被调用得很好。我确定我错过了一些明显的东西,但无法弄清楚是什么。请帮忙。
答案 0 :(得分:1)
根据您提供的代码,浏览器没有理由调用您单元格的render
方法。您只需将对象FormHistoryCell的引用传递给您的CellList。仅当浏览器必须显示单元格及其内容时才需要render
方法。当您向CellList添加数据时会发生这种情况,正如@outellou建议的那样。