【问题标题】:Combining DataSource and Local Data in SmartGWT ListGrid在 SmartGWT ListGrid 中结合数据源和本地数据
【发布时间】:2012-09-29 14:00:19
【问题描述】:

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

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

长话短说,我希望能够从两个单独的源填充 ListGrid - 从已经存在的数据源和理想情况下从保存在内存中的 RecordList。我尝试了类似的方法:

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

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

【问题讨论】:

    标签: datasource smartgwt listgrid


    【解决方案1】:

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

    顺便说一句,公共 wiki 上还有一篇文章展示了保存搜索的示例实现(尽管与您想要的不同):

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

    【讨论】:

    • 所以如果我理解正确的话,我应该直接在DataSource上执行我所有的数据操作,然后手动设置ListGrid的数据。这是一个很好的答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多