XPages Dojo Data Grid and Custom REST Service

心已入冬 提交于 2019-12-13 05:38:37

问题


Can a custom REST service be used as a data source for a dojo data grid? I am needing to combine data from three different databases into one data grid. The column data will need to be sort-able. The response from the REST service looks to be correct. I have having trouble with binding the JSON data to the dojo grid columns.


回答1:


Very interesting -- I tested and saw the same thing with a custom REST service -- it doesn't work when referenced as the storeComponentId of the grid.

I got it to work with the following steps:

  • Include two dojo modules in the page resources to set up the data store
  • A pass-thru script tag with code to set up a JSON data store for the grid (uses the dojo modules that the resources specify)
  • The grid’s store property is set to the variable set up for the data source in the tag. (storeComponentId needs an XPages component name)

Here are some snippets that show the changes:

<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">

There's more information and a full sample here:

http://xcellerant.net/dojo-data-grid-33-reading-custom-rest-service/




回答2:


The easiest way is to start with the extension library. There's a sample for a custom JSON-Rest service. While it pulls data from one source, it is easy to extend to pull data from more than one. I strongly suggest you watch out for all over performance.

What I would do:

  • create a bean that spits out the JSON to the grid
  • test it with one database
  • learn about threads in XPages and here
  • use one thread each for the databases, cuts down your load time
  • use a ConcurrentSkipListMap with a comparator so you have the initial JSON in the sort order most useful to the user (or the one from the preferences or the last run)

Memento bene: the Java Collections Framework is your friend (a sometimes difficult one).

Let us know how it goes!



来源:https://stackoverflow.com/questions/19911574/xpages-dojo-data-grid-and-custom-rest-service

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!