Я ищу способ показать jqgrid с предварительно заполненной панелью инструментов поиска и данными, отфильтрованными этой панелью инструментов.Я попробовал код ниже, но это делает два запроса на получение данных.Первый запрос извлекает нефильтрованные данные, и только второй запрос извлекает правильные данные.
Как исключить первый запрос, чтобы отфильтрованные данные были извлечены, а панель инструментов поиска была предварительно заполнена немедленно?
var grid = $("#grid"),
notLoaded= true;
grid.jqGrid({
datatype: "json",
mtype: 'POST',
loadComplete: function() {
$("#gs_Name").val('<%= Request.QueryString["Name"] %>');
if (notLoaded) {
setTimeout( function() {
$("#grid")[0].triggerToolbar();
}, 100 );
notLoaded = false;
}
}
});
Обновление
Я пытался заполнить панель инструментов поиска, используя критерии поиска, переданные из строки запроса
$(function () {
var grid = $("#grid"),
urlFilters;
var namedParameters = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'),
parameters = {},
nameAndValue,
i;
for (i = 0; i < namedParameters.length; i += 1) {
nameAndValue = namedParameters[i].split('=');
parameters[nameAndValue[0]] = decodeURIComponent(nameAndValue[1]);
if (nameAndValue[0] === "filters") {
urlFilters= decodeURIComponent(nameAndValue[1]);
}
}
grid.jqGrid({
postData: { filters: urlFilters },
search:true,
loadComplete: function() {
refreshSearchingToolbar( $(this), 'eq');
}
...
Панель инструментов поиска пуста, если сетка загружена, но сетка отфильтрована и диалоговое окно поиска заполнено.должным образом.Панель инструментов поиска также заполняется, если открыто диалоговое окно поиска.
Отладчик показывает, что в условии refreshSearchingToolbar
if (typeof (postData.filters) === "string" &&
typeof ($grid[0].ftoolbar) === "boolean" && $grid[0].ftoolbar) {
, если не выполняется: ftoolbar не определен.Я удалил эту проверку, но после этого получил ошибку в строке tagName = control[0].tagName.toUpperCase();
о неопределенном tagName Как это исправить?