Попытка сортировки jqGrid локально по-прежнему вызывает функцию сортировки на стороне сервера.Jquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Попытка сортировки jqGrid локально по-прежнему вызывает функцию сортировки на стороне сервера.

Сообщение Anonymous »

У меня есть jqGrid, заполненный данными с сервера, как показано ниже:

Код: Выделить всё

$("#dataGrid").jqGrid({
url: 'url/load.json',
datatype: 'json',
mtype: 'POST',
...
Один из столбцов в этой сетке создается и добавляется после получения исходных данных с сервера. Я пытался отсортировать этот столбец, но, поскольку его нет в базе данных, сортировка по умолчанию для jqGrid не удалась, что привело к ошибке SQL. Он пытается перезагрузить сетку с сервера, сортируя по несуществующему столбцу.
Чтобы обойти эту проблему, я пытаюсь выполнить сортировку локально при нажатии на этот конкретный столбец.
Однако, что бы я ни пробовал, исходный URL-адрес «load.json» все еще вызывается, вызывая упомянутую выше ошибку SQL. Возможно я что-то не правильно делаю?
В функции loadComplete() у меня следующее:

Код: Выделить всё

$("#dataGrid_ColumnToSortLocally").on('click', function()
{
var grid = $("#dataGrid");
var postData = grid.jqGrid('getGridParam', 'postData');
var sortName = postData.sidx;
var sortOrder = postData.sord || 'asc';
if (sortName === 'ColumnToSortLocally')
{
var gridData = grid.jqGrid('getRowData');
gridData.sort(function(a, b)
{
return sortOrder === 'asc' ? a.ColumnToSortLocally - b.ColumnToSortLocally: b.ColumnToSortLocally - a.ColumnToSortLocally;
});

try
{
grid[0].p.datatype = 'local';
grid[0].p.url = null;
grid[0].p.data = gridData;
grid[0].p.records = gridData.length;
grid[0].p.page = 1;
$('#dataGrid').jqGrid('clearGridData').jqGrid('setGridParam',{data: gridData}).trigger("reloadGrid");
}
catch (error)
{
console.error('An error occurred:', error);
}

grid.jqGrid('setGridParam', {datatype:'json'});
}
});
Кажется, все работает нормально, пока я не запускаю перезагрузку сетки. Мои данные присутствуют и сортируются правильно, но когда я пытаюсь перезагрузить сетку локально с отсортированными данными, он все равно обращается к серверу для сортировки по несуществующему столбцу.
Как я могу выполнить локальную сортировку по этому конкретному столбцу, сохраняя при этом серверную сортировку для других столбцов?
При необходимости я могу включить любые другие соответствующие фрагменты кода.
Я ценю вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/783 ... ctionality
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# MVC2 Jqgrid – как правильно выполнять подкачку на стороне сервера?
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Подсчет страниц в jqgrid с подкачкой на стороне сервера
    Anonymous » » в форуме Jquery
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Пейджинг jqgrid на стороне сервера
    Anonymous » » в форуме Jquery
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как зашифровать пароль в javascript (на стороне клиента) и расшифровать в laravel (на стороне сервера)? [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    112 Просмотры
    Последнее сообщение Anonymous
  • Расширение Datatable SearchBuilder на серверной стороне не работает. Но хорошо работает, когда на стороне сервера устано
    Anonymous » » в форуме Php
    0 Ответы
    149 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Jquery»