При восстановлении JQGrid через jqGridImport поисковая информация неверна
После экспорта данных с использованием jqGridExport мы импортируем с использованием jqGridImport. Первая проблема заключалась в том, что опции нижней панели не возвращались, поэтому я добавил этот код после. Итак, код выглядит так:
$("#list").jqGridImport({imptype: 'jsonstring', impstring: gridSettings})
.jqGrid('navGrid','#pager', { edit: false, add: false, del: false, search: true, refresh:true },
{},{},{},{closeOnEscape: true, multipleSearch: true, closeAfterSearch: true},{});
Критическая часть строки gridSettings:
"postData":{"_search":true,
"nd":1301031279941,
"rows":20,
"page":1,
"sidx":"a.ID",
"sord":"asc",
"filters":{"groupOp":"AND","rules": [{"field":"fname","op":"bw","data":"T"}]}
}
Все подходит нормально, кроме поиска. Одна строка поиска из postData выше верна, но есть вторая строка поиска, которую я могу описать только как строку поиска по умолчанию. Если я зайду и уберу эту строку из окна множественного поиска, все будет так, как должно быть.
Итак, у меня первый вопрос: почему при поиске с использованием jqGridImport не запускается множественный поиск?
Во-вторых, есть ли способ программно удалить вторую строку поиска?
1 ответ
Поведение нижней панели с помощью навигатора правильное, поскольку оно реализовано не как часть сетки. Так что вам действительно нужно установить его дополнительно. Вы можете написать свой собственный экспорт и импорт настроек.
Ситуация с дополнительной последней строкой, которая будет добавлена в диалог поиска, на самом деле является небольшой проблемой, которую можно исправить с помощью следующего кода:
var grid = $("#list");
...
grid.searchGrid(prmSearch);
if (typeof(grid[0].p.postData.filters) === "string" &&
grid[0].p.postData.filters.length>0) {
$("#fbox_"+grid[0].id).searchFilter().del();
}
$("#fbox_"+grid[0].id).searchFilter().close();
Вы можете увидеть соответствующую демонстрацию здесь. Это небольшая модификация демки из моего другого старого ответа.
Кстати, новый фильтр, который будет использоваться в следующей версии jqGrid, не будет иметь проблем (см. Демонстрацию здесь).