jqGrid - как сбросить настройки поиска? - PullRequest
8 голосов
/ 05 октября 2010

Использование jqGrid множественного поиска как вы можете программно "очистить" параметры поиска?

"Очистить" должно убедиться, что filters не отправляется на сервер и что графический интерфейс пользователяокно поиска не содержит критериев поиска ..

В данный момент мы звоним trigger("reloadGrid").Мы хотели бы вызвать метод типа clearSearchCrieria() перед reloadGrid, чтобы filters не передавалось на сервер и не отображалось в окне поиска GUI.

??

Ответы [ 9 ]

16 голосов
/ 01 декабря 2010

Вы можете использовать следующий метод:

function clearSearchOptions(){
    $("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
}

Но, как отметил Олег, вам придется использовать опцию recreateFilter:true в определении jqgrid, если вы хотите, чтобы поле поиска jqgrid также очищалось.

6 голосов
/ 05 октября 2010

Для сброса фильтров вы можете напрямую изменить параметр postData в jqGrid.Вы можете получить к нему доступ с помощью $("#list").jqGrid('getGridParam','postData') или $("#list")[0].p.postData.Если установлен фильтр, свойства postData выглядят следующим образом:

_search      true           Boolean
nd           1286296925096  Number
page         1              Number
rows         10             Number
searchField  "id"           String
searchOper   "lt"           String
searchString "5"            String
sidx         "id"           String
sord         "desc"         String

Чтобы сбросить свойства, вы можете сделать следующее:

var postdata = $("#list").jqGrid('getGridParam','postData');
postdata._search = false;
postdata.searchField = "";
postdata.searchOper = "";
postdata.searchString = "";

Если вы используете AdvancedПоиск вместо Одиночный поиск Вы должны очистить свойство filters вместо searchField, searchOper и searchString.

В конце вы можете позвонить $("#list").trigger("reloadGrid",[{page:1}]);перезагрузить сетку содержат начиная с номера страницы 1.

3 голосов
/ 05 октября 2010

Чтобы нажать кнопку «сброс», попробуйте:

$(".ui-reset").click();
2 голосов
/ 20 марта 2013

Сброс всех параметров поиска

$('input[id*="gs_"]').val("");
2 голосов
/ 12 декабря 2011

Единственный способ, которым я мог сделать это правильно - и я уверен, что это не правильный путь заключается в следующем:

$("#grid").jqGrid('setGridParam', { postData: { filters: null} });
$("#gs_ColName1").val("");
$("#gs_ColName2").val("");

где ColNameX - имена ваших столбцов

1 голос
/ 18 октября 2013
$("#resetFilterOptions").click(function(){
        $('input[id*="gs_"]').val("");
        $('select[id*="gs_"]').val("ALL");
        $("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
        });

Этот работает, остальные параметры поиска и перезагрузить JQGrid

0 голосов
/ 06 июня 2013

Я добавил внешнюю кнопку обновления, чтобы решить эту проблему.

jgrid.jsp

<sj:submit id="grid_refreshbutton" value=" Refresh" button="true"/>

jgrid.js

$(document).ready(function(){
jQuery("#grid_refreshbutton").click(function(){
    var postData = $("#gridtable").jqGrid('getGridParam','postData');
    $("#gridtable").jqGrid('setGridParam',{search:false});    
        $.extend(postData, { filters: "" });

        for (k in postData) {
            if (k == "_search")
                { postData._search = false;}
            else if ($.inArray(k, ["nd", "sidx", "rows", "sord", "page", "filters"]) < 0) {
                    delete postData[k];
                   ("#gs_" + $.jgrid.jqID(k), $("#gridtable").get(0).grid.hDiv).val("");
            }
        }
               $("#gridtable").trigger("reloadGrid", [{ page: 1}]);         

});

спасибо / С уважением, Кхине ла

0 голосов
/ 21 ноября 2012

использовать только

$ ( "# тд refresh_navGrid") нажмите кнопку ();.

0 голосов
/ 17 мая 2012
$("#search").filterGrid("#list", {
       gridModel: false,
       enableSearch: true,
       filterbutton: 'search_button',
       enableClear:true,
      filterModel: [{
           label: 'First Name',
           name: 'search',
           stype: 'text'
       }); 

Напишите enableClear:true в вашем filterGrid

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...