jqGrid - 如何重置搜索选项?

时间:2010-10-05 16:13:31

标签: jquery search jqgrid

使用jqGrid多个searching如何以编程方式“清除”搜索选项?

“clear”应该确保没有filters被发送到服务器,并且GUI搜索框不包含任何搜索条件..

我们目前正在呼叫trigger("reloadGrid")。我们想在reloadGrid之前调用clearSearchCrieria()类型的方法,这样就不会将filters传递给服务器或显示在GUI搜索框中。

...

9 个答案:

答案 0 :(得分:16)

您可以使用以下方法:

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

但正如Oleg指出的那样,如果你想要清除jqgrid搜索框,你必须在你的jqgrid定义中使用recreateFilter:true选项。

答案 1 :(得分:6)

要重置过滤器,您可以直接修改jqGrid的postData参数。您可以使用$("#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 Searching代替Single Searching,则应清除filters属性,而不是searchFieldsearchOpersearchString

最后,您可以致电$("#list").trigger("reloadGrid",[{page:1}]);重新加载包含从第1页开始的网格。

答案 2 :(得分:3)

要点击“重置”按钮,请尝试:

$(".ui-reset").click();

答案 3 :(得分:2)

我能做到正确的唯一方法 - 而且我确定它的方法不正确如下:

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

其中ColNameX是列的名称

答案 4 :(得分:2)

它将重置所有搜索选项

$('input[id*="gs_"]').val("");

答案 5 :(得分:1)

$("#resetFilterOptions").click(function(){
        $('input[id*="gs_"]').val("");
        $('select[id*="gs_"]').val("ALL");
        $("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
        });

这个可以使用Rest Search选项并重新加载JQGrid

答案 6 :(得分:0)

$("#search").filterGrid("#list", {
       gridModel: false,
       enableSearch: true,
       filterbutton: 'search_button',
       enableClear:true,
      filterModel: [{
           label: 'First Name',
           name: 'search',
           stype: 'text'
       }); 

enableClear:true

中写下filterGrid

答案 7 :(得分:0)

仅使用

$( “TD#refresh_navGrid”)点击();

答案 8 :(得分:0)

我添加了外部刷新按钮来解决这个问题。

<强> 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}]);         

});

感谢/此致 Khine lae