如何使用新数据更新增强的网格

时间:2013-11-20 14:37:54

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

我有一个连接到JSONRest的enhnaced网格,我在网格启动后填充它。 我很困惑如何在执行新查询时更新网格存储,任何人都可以帮忙吗?

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

    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,


        plugins: {
          pagination: {
            pageSizes: ["10", "25", "50"],
            description: true,
            pageStepper: true,
            maxPageStep: 4,  
            defaultPageSize: 5,
            sizeSwitch: true,
            position: 'bottom'
          }
        }
      }, document.createElement('div'));


    grid.setQuery({
        term: "term",
        category: "category"
      });

    grid.startup();

做一个store.query确实打了我的后端,但是我如何用结果重新填充Grid?

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





              });

1 个答案:

答案 0 :(得分:0)

为了填充网格,您不应该直接执行商店查询 - 您应该指示网格使用商店,它将自己查询。

您似乎已经在调用DataGrid构造函数时分配了商店实例,而且您正在使用dojo/data/ObjectStore正确包装它(因为dojox网格不支持dojo/store),所以它是我不清楚为什么你甚至试图执行超出该范围的查询。您致电grid.startup()后,应立即向服务部门看到网络请求。

如果您在创建网格时看到网络请求但是您没有在网格中看到结果,那么您的服务可能实际上不符合dojo/store/JsonRest期望的约定。有关请求和响应中的预期信息,请参阅http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html

如果您实际上询问如何告诉网格在将来的某个时间点使用其他商店,请致电grid.setStore(newstore)