我正在使用GWT 2.4并且我的页面中有一个EditorGridPanel,我想要一个onload功能。实际上在网格加载了行之后,我想自动用第一行值填充我的表单字段。如何编写一个listner / handler来在gwt中执行这个逻辑。
答案 0 :(得分:0)
当您将数据存储区值传递给网格时...尝试获取第一条记录
store.getModels();
或store.getAt(index)
或getRecordAt(index)
一旦你得到记录检查不为空并在表单中设置值。
你可以在设置定时器加载网格到延迟几毫秒后执行此操作。这是你需要的..
答案 1 :(得分:0)
您不需要处理程序。通常,您将拥有一个用于驱动这些操作的Activity或Presenter。当您从服务器接收数据时,您会执行以下操作:
myView.populateMyGrid(ArrayList<MyObject> objects);
myView.populateMyPanelWithFirstRow();
或者,您可以将此添加到填充网格的方法中:
displayItems.addAll(objects);
populateMyPanelWithFirstRow(displayItems.get(0));
答案 2 :(得分:0)
实际上当我在网格上调用loadGrid方法加载行时,加载它需要一些时间(因为数据必须来自数据库,但到那时客户端代码填充表单字段并写入行数据)在loadGrid方法执行之后,它最终没有在我的表单字段中填充任何内容,因为那时网格是空的。
所以,我做的是我已经在我的网格存储中添加了一个监听器(addStoreListener),如下所示,并在onLoad方法中编写了我的逻辑,它工作得很好。
myGrid.getMyStore().addStoreListener(new StoreListenerAdapter() {
public void onLoad(Store store, Record[] records) {
...
}
});