我扩展了一个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();
};
虽然这段代码确实被执行了,但它并没有以任何方式执行我希望它执行的功能。有人对如何执行此功能有任何建议吗?任何帮助将不胜感激。
答案 0 :(得分:2)
如果调用DataSource.fetchData(),则在回调中可以将所选数据作为RecordList获取。然后,您可以通过recordList.add()添加每个会话的搜索,并通过setData()将修改后的RecordList提供给ListGrid。
顺便说一下,还有一篇关于公共维基的文章,展示了已保存搜索的示例实现(虽然与您想要的不同):
http://wiki.smartclient.com/display/Main/Saved+Search+%28Smart+GWT%29