6

如何在 jqGrid 中禁用自动加载并在需要时手动加载数据?

谢谢。

4

4 回答 4

12

如果您设置datatype'local'从服务器将不加载数据。要强制加载数据,您可以更改datatype'json''xml'关于setGridParam方法(请参阅http://www.trirand.com/jqgridwiki/doku.php?id=wiki:optionshttp://www.trirand.com/jqgridwiki /doku.php?id=wiki:methods#grid_related_methods)然后调用trigger("reloadGrid")方法。

请参阅jqGrid 未加载数据,其中也包含您所询问的信息。

于 2010-07-20T17:23:19.723 回答
2

只是不要在表中设置默认 URL。并在需要加载数据时安装它(例如通过按下按钮),然后 .trigger("reloadGrid").

给你的例子:

jQuery("#grid").jqGrid(
         { 
            //Simply comment out the URL
            //url             :"salepointsprovider.php", 
            datatype:"json",
            colModel      :[
                {name:'SalePointId', index:'SalePointId'},
                {name:'Name', index:'Name'}
            ]
         }

 $('#ShowRecordsButton').click(function () {
           jQuery("#grid").jqGrid('setGridParam',
            {url:"salepointprovider.php?SalePointId=" + argSalePointId, page:1});
           jQuery("#grid").trigger('reloadGrid');
         }
于 2012-07-09T07:52:29.017 回答
0

我没有 url 的网格向服务器发送请求:

.../?_search=false&nd=1370817124473&rows=20&page=1&sidx=&sord=asc

设置数据类型:“本地”解决问题。重新加载网格

`function reloadGrid(gridId, gridData){
    $(gridId).jqGrid('clearGridData'); // 需要非空 grig(参见 http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/)
    $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');
}
`

无需更改数据类型(至少对于我的 json 情况,它被识别)

于 2013-06-09T22:37:17.153 回答
0

在 treegrid 中,您不能使用 datatype = 'local'。所以代替'local',我设置datatype ='jsonstring',定义空的假数据和jsonReader。jsonReader 应根据您检索到的数据正确定义。感谢奥列格的回答。而且,当我需要加载数据时,我只需将数据类型更改为“json”。

var fakeData ={
    rows: []
};
...
datatype: 'jsonstring',
datastr: fakeData,
...
jsonReader: {
    repeatitems: false,
    root: function (obj) { return obj.rows; },
    page: function (obj) { return 1; },
    total: function (obj) { return 1; },
    records: function (obj) { return obj.length; }
}
于 2016-01-16T10:17:08.040 回答