Как передать сложные критерии поиска в jqgrid из строки запроса - PullRequest
1 голос
/ 26 ноября 2011

Я попробовал код ниже, чтобы передать фильтр на URL, который вызывает jqgrid.jqGrid по-прежнему показывает все строки, переданный фильтр не передается в URL для извлечения данных из сервера форм.Как заставить jqGrid фильтровать по фильтру, переданному в строке запроса?

window.open( '/Grid?filters=' + encodeURIComponent(
  '{"groupOp":"AND","rules":[{"field":"Name","op":"cn","data":"John"}' )); 

1 Ответ

2 голосов
/ 27 ноября 2011

Вы можете разобрать window.location.href и получить все параметры, которые вам нужны.Если в URL-адресе содержится нужный вам параметр, вы можете декодировать его в отношении decodeURIComponent и использовать его, как вам нужно.

Следующий код можно использовать для тестов.Он демонстрирует, как декодировать параметр filters.

if (window.location.href.indexOf('?') < 0) {
    // the code will open the current HTML page with additional
    // parameter "filters" and reopen the same page with the parameters
    window.location = window.location.href + '?' +
        $.param({
            filters: JSON.stringify({
                groupOp: "AND",
                rules: [
                    {field: "Name", op: "cn", data: "John Smith"}
                ]
            })
        });
} else {
    // decode URL parameters and place in the as properties in the
    // object "parameters":
    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") {
            // display the data from the "filters" parameter
            var myFilters = $.parseJSON(decodeURIComponent(nameAndValue[1]));
            alert(myFilters.rules[0].data);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...