0

自定义 REST 服务能否用作 dojo 数据网格的数据源?我需要将来自三个不同数据库的数据组合到一个数据网格中。列数据需要可排序。来自 REST 服务的响应看起来是正确的。我无法将 JSON 数据绑定到 dojo 网格列。

4

2 回答 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 回答