Сортировка jqGrid на стороне клиента - PullRequest
11 голосов
/ 25 января 2010

У меня есть сетка деревьев с автозагрузкой строк. Цель состоит в том, чтобы отсортировать сетку по столбцу дерева, прямо на стороне клиента .

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

У меня неверные параметры сетки или дерево не работает с сортировкой на стороне клиента по столбцу дерева?

Текущие параметры jqGrid для сортировки:

loadonce: true, // to enable sorting on client side
sortable: true //to enable sorting

Ответы [ 3 ]

6 голосов
/ 26 января 2010

Чтобы заставить работать на стороне клиента, мне нужно было позвонить reloadGrid после загрузки сетки:

loadComplete: function() {
    jQuery("#myGridID").trigger("reloadGrid"); // Call to fix client-side sorting
}

Мне не нужно было делать это на другой сетке в моем приложении, потому что оно было настроено на использование данных, полученных с помощью другого вызова AJAX, вместо данных, полученных непосредственно с помощью сетки:

editurl: "clientArray"
datatype: "local"
2 голосов
/ 25 мая 2011

Я использую сортировку на стороне клиента в jqGrid и извлекаю новый набор данных json при изменении списка выбора. Вам нужно установить rowTotal на величину, большую или равную числу возвращаемых строк, а затем установить тип данных «json» непосредственно перед перезагрузкой сетки.

// Select list value changed
$('#alertType').change(function () {
        var val = $('#alertType').val();
        var newurl = '/Data/GetGridData/' + val;
        $("#list").jqGrid().setGridParam({ url: newurl, datatype: 'json' }).trigger("reloadGrid");        
});

// jqGrid setup
$(function () {
        $("#list").jqGrid({
            url: '/Data/GetGridData/-1',
            datatype: 'json',
            rowTotal: 2000,
            autowidth: true,
            height:'500px',
            mtype: 'GET',
            loadonce: true,
            sortable:true,
            ...
            viewrecords: true,
            caption: 'Overview',
            jsonReader : { 
                root: "rows", 
                total: "total", 
                repeatitems: false, 
                id: "0"
            },
            loadtext: "Loading data...",
        });
    }); 
1 голос
/ 18 февраля 2014
$(function () {
        $("#list").jqGrid({
            url: '/Data/GetGridData/-1',
            datatype: 'json',
            rowTotal: 2000,
            autowidth: true,
            height:'500px',
            mtype: 'GET',
            loadonce: true,
            sortable:true,
            ...
            viewrecords: true,
            caption: 'Overview',
            jsonReader : { 
                root: "rows", 
                total: "total", 
                repeatitems: false, 
                id: "0"
            },
            loadtext: "Loading data...",
        });
    }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...