How to update enhanced grid with new data

妖精的绣舞 提交于 2019-12-25 05:18:14

问题


I have an enhnaced grid connected to a JSONRest and i have it populating after the grid starts up. I'm confused as to how to update the Grid store when a new query is performed, can anyone help ?

    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();

Doing a store.query does hit my back end, but how do i repopulate the Grid with the results?

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





              });

回答1:


In order to populate the grid, you shouldn't be performing a store query directly - you should be instructing the grid to use the store, and it will query it itself.

You already appear to be assigning the store instance in your call to the DataGrid constructor, and you're properly wrapping it with dojo/data/ObjectStore (since dojox grid doesn't support dojo/store), so it's not clear to me why you are even attempting to perform a query beyond that. You should see a network request to your service as soon as you call grid.startup().

If you're seeing a network request being made when you create the grid but you're not seeing results in the grid, chances are your service does not actually follow the conventions that dojo/store/JsonRest expects. See http://dojotoolkit.org/reference-guide/1.9/quickstart/rest.html for information on what is expected in requests and responses.

If you're actually asking how to tell the grid to use a different store at some point in the future, call grid.setStore(newstore).



来源:https://stackoverflow.com/questions/20098820/how-to-update-enhanced-grid-with-new-data

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