тип данных jqGrid setGridParam: локальный

Я не хочу попасть на сервер и вернуть каждую строку, когда я просматриваю записи с помощью пейджера. Я прочитал, что если я установил datatype = local в полном блоге в .функция ajax, и если я установил loadonce: true, тогда я смогу избежать необходимости ждать перезагрузки сетки с данными.

однако, когда я делаю эти вещи, сетка не переходит на следующую страницу. Она просто висит...
Что я делаю не так?

jQuery(document).ready(function () {
    jQuery("#list").jqGrid({
        datatype: processrequest,
        mtype: 'POST',  
        jsonReader: {  
            root: "rows", //arry containing actual data  
            page: "page", //current page  
            total: "total", //total pages for the query  
            records: "records", //total number of records  
            repeatitems: false,  
            id: "ID" //index of the column with the PK in it   
        },
        colNames: ['Name', 'Title'],
        colModel: [
      { name: 'name', index: 'name', width: 250 },
      { name: 'title', index: 'title', width: 250 }
      ],
        pager: '#pager',
        rowNum: 10,
        rowList: [10, 20, 30],
        sortorder: "desc",
        viewrecords: true,
        height: '250px',
        caption: 'My first grid',
        loadonce: true
    }).navGrid('#pager', {edit: false, add: false, del: false});
});

function processrequest(postdata) {
...
$.ajax({
...
    complete: function (jsondata, stat) {
        if (stat == "success") {
            var thegrid = jQuery("#list2")[0];
            var jsonObject = (eval("(" + jsondata.responseText + ")"));
            thegrid.addJSONData(jsonObject.d);
            $(".loading").hide();
        } else {
            $(".loading").hide();
            alert("Error with AJAX callback");
        }
        $("#list").setGridParam({ datatype: 'local' });
    }
});
}

3 ответов


есть некоторые недоразумения. Если вы используете datatype: local тогда вам нужно заполнить jqGrid самостоятельно такими методами, как addRowData или установить данные в один раз с


немного поздно, но вот (the?) супер-простое решение для любых будущих искателей решений:

gridComplete: function(){ 
  $("#yourGridID").setGridParam({datatype: 'local'}); 
}

вот и все. Я использую 3.7.2, не могу говорить ни о каких других версиях. Проблема (по-видимому) связана с тем, что "loadonce" работает только с предопределенными значениями типа данных, которыми не является функция. Я!--4-->верить другие встроенные значения также будут работать, но "локальный" имеет смысл.


Это работает для меня. У меня была проблема с подкачкой и сортировкой не работает. Возможно, из-за этого .D и __введите элементы, которые были отправлены обратно в объект JSON .сеть. Однако с дополнительными конфигурациями в этом примере. Это сработало !

Я схожу с ума. Это способ настройки сетки, если вы используете .Net в качестве веб-сервиса. Он настроен для анализа и правильной установки элементов данных из объекта JSON в нужные местоположения в сетке, чтобы обеспечить работу подкачки и сортировки.

Я должен был прокомментировать, потому что я уверен, что есть несколько людей, которые хотели бы использовать эту сетку, но используют .Net в качестве своего веб-сервиса.