Как загрузить jqGrid без Ajax-запроса? - PullRequest
1 голос
/ 01 ноября 2010

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

Мне бы очень хотелось, чтобы мой контроллер извлек данные, необходимые для отображения в сетке, передал их моему представлению и позволил jqGrid выполнять свою работу на основе этих локальных данных, а не инициировать другой запрос. Я не могу представить, что это невозможно, но я не нашел ни одного примера, который бы не использовал конфигурацию url для сбора данных в формате JSON.

Конечно, загрузчик данных не такой уж узкий, но может кто-нибудь указать мне на пример, который не является ajax-ориентированным?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 01 ноября 2010

Начиная с версии 3.7, jqgrid имеет полную локальную поддержку, включая сортировку данных и т. П.Может потребоваться использование localReader, см. документацию .Вот простой пример:

var mydata = [
    { id: "1", invdate: "2007-10-01", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "2", invdate: "2007-10-02", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "3", invdate: "2007-09-01", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" },
    { id: "4", invdate: "2007-10-04", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "5", invdate: "2007-10-05", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "6", invdate: "2007-09-06", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" },
    { id: "7", invdate: "2007-10-04", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "8", invdate: "2007-10-03", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "9", invdate: "2007-09-01", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" },
    { id: "10", invdate: "2007-10-01", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "11", invdate: "2007-10-02", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "12", invdate: "2007-09-01", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" },
    { id: "13", invdate: "2007-10-04", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "14", invdate: "2007-10-05", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "15", invdate: "2007-09-06", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" },
    { id: "16", invdate: "2007-10-04", name: "test", note: "note", amount: "200.00", tax: "10.00", total: "210.00" },
    { id: "17", invdate: "2007-10-03", name: "test2", note: "note2", amount: "300.00", tax: "20.00", total: "320.00" },
    { id: "18", invdate: "2007-09-01", name: "test3", note: "note3", amount: "400.00", tax: "30.00", total: "430.00" }
];
var grid = $("#list");
grid.jqGrid({
    data: mydata,
    datatype: "local",
    colNames: ['Inv No', 'Date', 'Client', 'Amount', 'Tax', 'Total', 'Notes'],
    colModel: [
        { name: 'id', index: 'id', key: true, width: 70, sorttype: "int" },
        { name: 'invdate', index: 'invdate', width: 90, sorttype: "date" },
        { name: 'name', index: 'name', width: 100 },
        { name: 'amount', index: 'amount', width: 80, align: "right", sorttype: "float" },
        { name: 'tax', index: 'tax', width: 80, align: "right", sorttype: "float" },
        { name: 'total', index: 'total', width: 80, align: "right", sorttype: "float" },
        { name: 'note', index: 'note', width: 150, sortable: false }
    ],
    pager: '#pager',
    rowNum: 10,
    rowList: [5, 10, 20, 50],
    sortname: 'id',
    sortorder: 'asc',
    viewrecords: true,
    height: "100%",
    caption: "Simple loading of local data"
});
grid.jqGrid('navGrid', '#pager', { add: false, edit: false, del: false, search: true, refresh: true });
1 голос
/ 01 ноября 2010

Посмотрите на примеры jqGrid здесь . Разверните «Загрузка данных» и нажмите «Массив данных».

...