Как реализовать пользовательскую сортировку для определенного столбца после создания jqgrid? - PullRequest
2 голосов
/ 14 марта 2011

Есть ли способ, который я могу использовать для перезаписи / вставки пользовательской функции "sorttype" для определенного столбца в colModel после того, как он был заполнен с использованием javascript (jQuery)?

Я нашелпример здесь: http://www.ok -soft-gmbh.com / jqGrid / CustomSorttype1.htm , где sorttype реализован с начальными настройками, но что мне нужно изменить после.

Пробовал:

var attName = grid.getGridParam("colModel")[1].name;
        grid.setColProp(attName, { sorttype: function (cell) {
            if (cell == '<div>x</div>') { return '0' } else { return '1' };
        }
        });

но не работает.

1 Ответ

9 голосов
/ 14 марта 2011

Использование sorttype в качестве функции может быть полезно для любого локального типа данных jqGrid или в случае использования loadonce:true jqGrid paremter с «удаленными» типами данных «json» или «xml».При необходимости вы можете динамически изменить sorttype любого столбца.

Я сделал новую демонстрацию , чтобы вы могли продемонстрировать эту функцию.В начале сетка будет отсортирована по столбцу «Клиент», а содержащийся столбец будет интерпретирован как текстовая строка.Результаты отображаются ниже

enter image description here

Когда мы установим флажок «Установить функцию пользовательского типа сортировки», сетка будет отсортирована, как показано на следующем рисунке

enter image description here

Для реализации такой сортировки я определил функцию

var myCustomSort = function(cell,rowObject) {
    if (typeof cell === "string" && /^test(\d)+$/i.test(cell)) {
        return parseInt(cell.substring(4),10);
    } else {
        return cell;
    }
}

и обработчик события 'change' на флажке

$("#customsorttype").change(function() {
    var isChecked = $(this).is(':checked');
    if (isChecked) {
        cm.sorttype = myCustomSort;
    } else {
        cm.sorttype = "text";
    }
    grid.trigger("reloadGrid");
});

, где grid равно $("#list").

Если один раз кликнуть по флажку еще раз, будет использован оригинальный метод сортировки с sorttype:"text".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...