GWT DataGrid未显示

时间:2014-10-01 09:02:10

标签: java gwt datagrid uibinder

我正在尝试将我的数据小部件从CellTable更新为DataGrid,我基本上认为我在线上从@UiField CellTable<T>更改为@UiField DataGrid<T>但不是它。

private void init() {
        sortHandler = new ListHandler<GWTUser>(getUsers());

        dataGrid.setWidth("100%");
        dataGrid.setHeight("100%");
        dataGrid.setAutoHeaderRefreshDisabled(true);
        dataGrid.setEmptyTableWidget(emptyDb);
        dataGrid.addColumnSortHandler(sortHandler);
        dataGrid.setVisibleRangeAndClearData(dataGrid.getVisibleRange(), true);

        dataGrid.setRowCount(1, true);
        dataGrid.clearTableWidth();
        dataGrid.redraw();

        // Setup Cell Table.
        initCellTable();

        // Connect the table to the data provider.
        dataProvider.addDataDisplay(dataGrid);

    }

    private void initCellTable() {

        // userId Column
        TextColumn<GWTUser> userIdColumn = new TextColumn<GWTUser>() {

            @Override
            public String getValue(GWTUser object) {
                return object.getUserId();
            }

        };
        dataGrid.addColumn(userIdColumn, Lang.LABEL_USER_USERID);

        dataGrid.addColumnSortHandler(sortHandler);
        dataGrid.getColumnSortList().push(userIdColumn);
        dataGrid.getColumnSortList().push(userIdColumn);

    }

    @Override
    public void setUserList(List<GWTUser> users) {

            setUsers(users);

            dataGrid.setRowCount(getUsers().size(), true);
            dataGrid.setRowData(0, getUsers());
            dataGrid.setPageSize(getUsers().size());
            dataGrid.setVisibleRange(new Range(0,dataGrid.getRowCount()));
            dataGrid.redraw();

            sortHandler.setList(getUsers());


    }

uiBinder:

    <g:VerticalPanel>                               
        <g:ScrollPanel ui:field="listScrollPanel">
            <c:DataGrid styleName= ui:field='dataGrid' width="100%" height="98%"/>
        </g:ScrollPanel>

        <g:HorizontalPanel>
            <g:Button ui:field="createButton">New</g:Button>
            <g:Button ui:field="refreshButton">Refresh</g:Button>
            <g:Button ui:field="removeSelectedButton">Delete Selection</g:Button>
        </g:HorizontalPanel>

    </g:VerticalPanel>

当我使用chrome dev工具更改DataGrid应该使用的区域时,带有表格的数据会显示但不会显示。

作为基本信息:init由构造函数调用,当我从休息服务获取数据时,在我的活动中调用setUserList。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

DataGrid需要明确设置的高度。这意味着您无法使用百分比(例如100%),而是必须使用500px之类的内容。

以下是相关问题:

GWT DataGrid automatic height