CellList 中的 GWT 自定义单元格 - 渲染() 未被调用



我无法弄清楚为什么我的渲染方法没有被调用。这是我的自定义单元格,它扩展了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;
    }
}

}

这是我的代码中的狙击手,它创建了一个"FormHistoryCell"的实例,并尝试将其添加到CellList中。

@UiFactory
CellList<FormHistoryCell> initList() {
    FormHistoryCell formHistoryCell = new FormHistoryCell();
    CellList historyList = new CellList<FormHistoryCell>(formHistoryCell);
    return historyList;
}

我尝试了不同的事情,例如添加接受 String 参数的构造函数等。调用构造函数,但不调用呈现方法。查看它扩展的 Abstract 类,似乎在"setValue"方法中调用了渲染方法,但没有看到在其他自定义单元格扩展中调用它的位置,这些扩展的渲染方法似乎被调用得很好。我确定我在这里错过了一些明显的东西,但无法弄清楚是什么。请帮忙。

根据您提供的代码,浏览器没有理由调用单元格的render方法。您只需将对对象 FormHistoryCell 的引用传递给您的 CellList。仅当浏览器必须显示单元格及其内容时,才需要 render 方法。正如@outellou建议的那样,当您将数据添加到 CellList 时,就会发生这种情况。

最新更新