4

我已经在 CellList 上工作了几个星期,我觉得它很糟糕。

那些日子我希望打印一个包含 70 多个元素的列表,但我注意到我的 CellList 不附加超过 25:从 0 到 24。为了确保问题与我的项目没有关系,我决定测试新项目和部落项目中的代码,但结果相同。

这是我的代码:

CustomCell bodyCell = new CustomCell();
CellList<String> coreCellList = new CellList<String>(bodyCell);
List<String> list = new ArrayList<String>();
for (int i=0; i<74; i++) {
    list.add("hello_"+i);
}
coreCellList.setRowData(0, list);
coreCellList.setRowCount(list.size(), true);

RootPanel.get().add(coreCellList);

和自定义单元:

public class CustomCell extends AbstractCell<String> {
interface Templates extends SafeHtmlTemplates {

        String style = "cell";

        @SafeHtmlTemplates.Template("<div class=\"" + style
                + "\" style = 'height : 15%'>{0}<br/></div>")
        SafeHtml cell(SafeHtml value);
    }

    private static Templates templates = GWT.create(Templates.class);

    @Override
    public void render(com.google.gwt.cell.client.Cell.Context context,
            String value, SafeHtmlBuilder sb) {
        SafeHtml safeValue = SafeHtmlUtils.fromString(value);

        SafeHtml rendered = templates.cell(safeValue);

        sb.append(rendered);
    }
}

感谢您的帮助。

4

2 回答 2

4

当我不想分页时,我总是使用下面的代码传递我的 CellTables 和 CellLists。

public static void setupOnePageList(final AbstractHasData<?> cellTable) {
    cellTable.addRowCountChangeHandler(new RowCountChangeEvent.Handler() {
        @Override
        public void onRowCountChange(RowCountChangeEvent event) {
            cellTable.setVisibleRange(new Range(0, event.getNewRowCount()));
        }
    });
}
于 2012-05-11T19:10:58.643 回答
0

CellList 默认使用分页,页面大小为 25。如果在页面中添加 SimplePager,则可以控制要显示哪些数据。

我建议不要通过将页面大小设置为数据列表的大小来禁用分页,因为旧浏览器(尤其是 IE8 和更早版本)会遇到严重的性能问题,具体取决于演示文稿的复杂性和大小列表。

要添加寻呼机,请参阅DevGuide

// Create a SimplePager.
SimplePager pager = new SimplePager();

// Set the cellList as the display.
pager.setDisplay(cellList);
于 2012-05-04T14:36:24.517 回答