加载后GXT Basic Grid不显示数据

时间:2013-12-18 09:37:59

标签: java gwt gxt

我遇到问题:从DB加载后,我的基本网格不显示信息。调试器向我显示数据是从数据库中选择的,在firebug中我看到数据是在浏览器中接收的,但没有在网格中显示。它只呈现表头。我花了很多时间试图理解什么是错的。也许你的新观点可以帮助解决这个问题。问题出在这里。单击时呈现表的按钮代码:

  Button users = new Button("Users", new SelectionListener<ButtonEvent>() {
        @Override
        public void componentSelected(ButtonEvent ce) {
            center.removeAll();

            final List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
            configs.add(new ColumnConfig("id", "Id", 30));
            // and a few other columns

            RpcProxy<BaseListLoadResult<User>> proxy = new RpcProxy<BaseListLoadResult<User>>() {
                @Override
                protected void load(Object loadConfig, AsyncCallback<BaseListLoadResult<User>> callback) {
                    userServiceAsync.getUsers((BaseListLoadConfig) loadConfig, callback);
                }
            };
            // final BaseListLoader<ListLoadResult<User>> loader = new BaseListLoader<ListLoadResult<User>>(proxy, new BeanModelReader());
            final BaseListLoader<ListLoadResult<User>> loader = new BaseListLoader<ListLoadResult<User>>(proxy);
            ListStore<User> listStore = new ListStore<User>(loader);
            ColumnModel cm = new ColumnModel(configs);
            Grid<User> grid = new Grid<User>(listStore, cm);
            grid.setStripeRows(true);
            grid.addListener(Events.Attach, new Listener<ComponentEvent>() {
                @Override
                public void handleEvent(ComponentEvent be) {
                    Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
                        @Override
                        public void execute() {
                            loader.load(new BaseListLoadConfig());
                        }
                    });
                }
            });
            center.add(grid);
            center.layout(true);
        }
    });

Verisons:GWT - 2.1.1和GXT 2.2.5 谢谢你的所有答案

1 个答案:

答案 0 :(得分:0)

OMG!解决是如此简单...... facepalm 。我忘了设置网格的大小。只需添加grid.setHeight(300);代码解决这个问题。接收数据,但不显示数据,因为它没有页面上的位置来呈现它。不要重复我的愚蠢错误