我遇到问题:从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 谢谢你的所有答案
答案 0 :(得分:0)
OMG!解决是如此简单...... facepalm 。我忘了设置网格的大小。只需添加grid.setHeight(300);代码解决这个问题。接收数据,但不显示数据,因为它没有页面上的位置来呈现它。不要重复我的愚蠢错误