Как отключить автозагрузку в jqGrid? - PullRequest
6 голосов
/ 17 июля 2010

Как отключить автозагрузку в jqGrid и загрузить данные вручную, когда мне это нужно?

Спасибо.

Ответы [ 4 ]

10 голосов
/ 20 июля 2010

Если вы установите datatype на 'local', данные с сервера не будут загружены. Для принудительной загрузки данных вы можете изменить datatype на 'json' или 'xml' в отношении метода setGridParam (см. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options и http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods#grid_related_methods), а затем вызвать метод trigger("reloadGrid").

См. jqGrid не загружает данные , который также содержит информацию, которую вы запросили.

2 голосов
/ 09 июля 2012

Только не устанавливайте 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');
         }
0 голосов
/ 16 января 2016

В treegrid вы не можете использовать тип данных = '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; }
}
0 голосов
/ 10 июня 2013

Моя сетка без URL отправляет запросы на сервер:

... /? _ Поиск = ложь и й = 1370817124473 & строк = 20 & страница = 1 & sidx = & Sord = Asc

Установить тип данных: «локальный» решить проблему. Перезагрузить сетку на

`function reloadGrid(gridId, gridData){
    $(gridId).jqGrid('clearGridData');  // need for nonempty grig (see http://www.trirand.com/blog/?page_id=393/help/triggerreloadgrid-not-work/)
    $(gridId).jqGrid('setGridParam', {data: gridData}).trigger('reloadGrid');
}
`

Нет необходимости изменять тип данных (по крайней мере, для моего случая json он распознается)

...