在SmartGWT ListGrid中组合DataSource和Local Data

时间:2012-09-28 14:15:29

标签: datasource smartgwt listgrid

我扩展了一个ListGrid来创建按搜索类型分组的已保存搜索列表,无论是公共还是私有。此列表通过标准SmartGWT数据源填充。

此外,我想在此列表中添加一组历史搜索,这些搜索将在用户逐个会话的基础上创建搜索时可用(IE。用户创建新的搜索 - 直到他们关闭浏览器,搜索将显示在搜索列表中,在“历史搜索”分组下。

长话短说,我希望能够从两个独立的源填充ListGrid - 来自已经存在的数据源,理想情况下来自保存在内存中的RecordList。我尝试过类似的东西:

@Override
public void fetchData() {
    invalidateCache();
    discardAllEdits();
    super.fetchData();
    setCanEdit(true);
    for(Record r : histSearches.toArray()) {
        startEditingNew(r);
        endEditing();
    }
    setCanEdit(false);
    markForRedraw();
};

虽然这段代码确实被执行了,但它并没有以任何方式执行我希望它执行的功能。有人对如何执行此功能有任何建议吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果调用DataSource.fetchData(),则在回调中可以将所选数据作为RecordList获取。然后,您可以通过recordList.add()添加每个会话的搜索,并通过setData()将修改后的RecordList提供给ListGrid。

顺便说一下,还有一篇关于公共维基的文章,展示了已保存搜索的示例实现(虽然与您想要的不同):

http://wiki.smartclient.com/display/Main/Saved+Search+%28Smart+GWT%29