开发者

jqGrid - how to set grid to NOT load any data initially?

开发者 https://www.devze.com 2023-01-19 20:32 出处:网络
How can you create a grid but not load any data? If I omit the url option then the loadError callback is triggered.

How can you create a grid but not load any data?

If I omit the url option then the loadError callback is triggered.

Currently we set url:NoData.json where NoData.json is a static file with no rows in it.

Issue is in our loadComplete callback we'd like to dipslay a message if the grid contains no data - except we don't want to display this message on the initial load. Currently we handles this as follows:

//jqGrid load complete handler
function loadComp(grid) {
    if (grid.getGridParam("url") != "NoData.json" && grid.getGridParam("records") == 0) {
        setStatus("Your search did not return any results");
    }
}

This just seems a little hacky.. would like to just have the grid not lo开发者_开发知识库ad any data initially.

Any ideas?


You should just use datatype: 'local' initially. At the moment when you need to load the data you should change the datatype to json or xml:

$("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');


I wanted to create a grid that loads no data when the page is loaded but loads data, when the user clicks refresh or uses the search. My solution is a little bit hacky to but is very easy and works nicely.

I am using the callback event loadBeforeSend to stop the ajax request for data when the page is loaded. My callback function removes itself so it will be executed only once.

loadBeforeSend: function (xhr, settings) {
  this.p.loadBeforeSend = null; //remove event handler
  return false; // dont send load data request
}


Do not set URL when you initialize the Grid. Set URL just before loading the grid using setGridParam function.

It works for me.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号