带有JSONREST问题的Dojo增强型网格

时间:2013-11-19 17:22:52

标签: dojo dojox.grid.datagrid dojox.grid

我正在尝试使用Dojo JSONREST的增强型网格,但我遇到了一些问题。 我一直在查找一些例子,但无法弄清楚如何做我需要的。

在下面的代码中,我的rest服务有两个参数,对服务的查询有效。 问题是,当调用grid.startup()时,它似乎再次调用Rest服务,因为没有传递参数,其余服务都会丢失。我在这做错了什么?

还有什么方法可以更新到商店,这样只包含查询结果?,这样当网格出现时它只包含这些值?

感谢任何帮助或指示..

ready(function(){

  var grid;

  var store = new JsonRest({
              target: "rest/search"
              });   

  store.query({term: "test", category: "category"},
      {
        start: 10,
        count: 10,
      }).then(function(data){

      // how do i update store with queried results?

      });

  dataStore = new ObjectStore({ objectStore: store });

  /*set up layout*/
  var layout = [[
   {'name': 'Name', 'field': 'col1', noresize: true, 'width': '100%'},
  ]];

  /*create a new grid:*/
  grid = new EnhancedGrid({
      id: 'grid',
      store: dataStore,
      structure: layout,
      selectable: true,
      selector: false,
      selectionMode: 'none',
      escapeHTMLInData: false,
      autoHeight:true
  }, document.createElement('div'));

grid.startup();
}

2 个答案:

答案 0 :(得分:1)

您是否尝试过设置网格的查询参数? A link to the docsAnd a link to an example.

通过查看问题中的代码,网格似乎应该显示数据块/页面an example using the pagination plugin for the grid

The filter plugin也可能对你感兴趣。

答案 1 :(得分:-1)

定义新网格时,必须将其传递给dojo:

/*create a new grid:*/
  grid = new EnhancedGrid({
  id: 'grid',
  store: dataStore,
  structure: layout,
  selectable: true,
  selector: false,
  selectionMode: 'none',
  escapeHTMLInData: false,
  autoHeight:true
 }, document.createElement('div'));

 /*append the new grid to the div*/
 dojo.byId("gridDiv").appendChild(grid.domNode);

 grid.startup();