如何存储SmartGWT ListGrid的数据?

时间:2013-09-29 16:42:10

标签: google-app-engine gwt google-cloud-datastore smartgwt listgrid

我一直在寻找几个小时但我无法找到问题的答案:我设置的ListGrid类似于此处显示的 ListGrid componentsGrid = new ListGrid(); componentsGrid.setWidth(500); componentsGrid.setHeight(224); componentsGrid.setCellHeight(22); componentsGrid.setDataSource(ComponentsXmlDS.getInstance()); componentsGrid.setAutoFetchData(true); componentsGrid.setCanEdit(true); componentsGrid.setModalEditing(true); componentsGrid.setEditEvent(ListGridEditEvent.CLICK); componentsGrid.setListEndEditAction(RowEndEditAction.NEXT); componentsGrid.setAutoSaveEdits(false); layout.addMember(componentsGrid); //First try componentsGrid.fetchData(); logger.log(Level.INFO, "Components: "+ componentsGrid.getResultSet().get(0).getAttribute("componentType")); //Second try logger.log(Level.INFO, "Components: "+ componentsGrid.getAllFields()); // Third try logger.log(Level.INFO, "Components: "+ componentsGrid.getRecords()); Link)。现在我正在使用XML-File作为数据源(默认行),就像在示例中一样。也可以在网格中添加和删除行。

因此,我希望将网格中的每个用户数据存储在数据存储(Google Datastore)中。所以我需要读取当前用户的所有行作为字符串。有什么好办法呢?我已经尝试了以下内容,但没有成功:

{{1}}

有人提示吗?非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

如果我理解您的要求,您想要读取网格的所有行并将其数据存储在数据库中。 我想你可以用: getRecordList() *返回此DataBoundComponent的基础数据作为RecordList。 您将能够在此列表中进行迭代,为每条记录提取所需的属性值,并将这些数据存储在数据库中。 或者按照您的说法使用getRecords()方法,并迭代获得的ListGridRecord数组。

要遍历RecordList,您必须将其转换为数组,例如使用大量虚拟对象和方法:

RecordList data = MyGrid.getRecordList();
for(Record record : data.toArray()){
    MyDataObject obj = new MyDataObject()
    obj.setId(record.getAttribute("thId"));
    obj.setOne(record.getAttribute("anAttribute"));
    obj.setTwo(record.getAttribute("anotherAttribute"));
    obj.StoreToDb();
}