自定义 REST 服务能否用作 dojo 数据网格的数据源?我需要将来自三个不同数据库的数据组合到一个数据网格中。列数据需要可排序。来自 REST 服务的响应看起来是正确的。我无法将 JSON 数据绑定到 dojo 网格列。
问问题
1121 次
2 回答
2
非常有趣——我用自定义 REST 服务测试并看到了同样的事情——当它被引用为网格的 storeComponentId 时它不起作用。
我让它通过以下步骤工作:
- 在页面资源中包含两个 dojo 模块以设置数据存储
- 带有代码的 pass-thru 脚本标记,用于为网格设置 JSON 数据存储(使用资源指定的 dojo 模块)
- 网格的存储属性设置为标签中为数据源设置的变量。(storeComponentId 需要一个 XPages 组件名称)
以下是一些显示更改的片段:
<xp:this.resources>
<xp:dojoModule name="dojo.store.JsonRest"></xp:dojoModule>
<xp:dojoModule name="dojo.data.ObjectStore"></xp:dojoModule>
</xp:this.resources>
...
<xe:restService id="restService1" pathInfo="gridData">
...
<script>
var jsonStore = new dojo.store.JsonRest(
{target:"CURRENT_PAGE_NAME_HERE.xsp/gridData"}
);
var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>
...
<xe:djxDataGrid id="djxDataGrid1" store="dataStore">
这里有更多信息和完整示例:
http://xcellerant.net/dojo-data-grid-33-reading-custom-rest-service/
于 2014-01-09T17:21:00.977 回答
0
最简单的方法是从扩展库开始。有一个自定义 JSON-Rest 服务的示例。虽然它从一个来源提取数据,但很容易扩展到从多个来源提取数据。我强烈建议您注意所有性能。
我会做什么:
- 创建一个将 JSON 输出到网格的 bean
- 用一个数据库测试它
- 了解XPages和此处的线程
- 每个数据库使用一个线程,减少加载时间
- 将ConcurrentSkipListMap与比较器一起使用,这样您就可以按照对用户最有用的排序顺序获得初始 JSON(或来自首选项或上次运行的排序顺序)
纪念品:Java 集合框架是您的朋友(有时很难)。
让我们知道怎么回事!
于 2013-11-11T19:02:00.310 回答