我在哪里设置closeAfterReset closeAfterSearch设置作为JqGrid的默认设置?

时间:2011-09-01 19:12:40

标签: jquery jquery-ui jqgrid

我的这些工作很棒,如下所示的navgrid设置:

this.Grid.navGrid('#' + this.PagerId, {}, {}, {}, {},
{         
    closeAfterSearch: true,
    closeAfterReset: true,
    closeOnEscape: true      
});

但我希望将它们设置为默认值。

我试过了:

  • $.extend($.jgrid.defaults, { search : { closeAfterReset: true } });
  • $.extend($.jgrid.search, { closeAfterReset: true } );

......似乎都没有起作用。有什么提示吗?

修改

这是@Oleg建议的代码 - 仍然无效:

$.extend($.jgrid.search, {    
            closeAfterSearch: true,
            closeAfterReset: true,
            closeOnEscape: true,
            beforeShowSearch: function ($form) {
            ...
            },
            onClose: function (searchBoxId) {
             ...
            },
            Reset: "Clear Filter",
            Find: "Filter Grid"
        });

根据jqgrid wiki上的single_searching文章,这里设置了搜索选项,这就是我做原始代码的原因:

<script>
...
jQuery("#grid_id").jqGrid({
 ...
pager : '#gridpager',
...
}).navGrid('#gridpager',{view:true, del:false}, 
{}, //  default settings for edit
{}, //  default settings for add
{},  // delete instead that del:false we need this
{search_options}, // search options  
{} /* view parameters*/
);
...
</script>

对我而言,有趣的是我的onClosebeforeShowSearch事件正在被击中,但这些属性现在已经受到影响......

1 个答案:

答案 0 :(得分:1)

默认搜索设置应由

设置
$.extend($.jgrid.search,
    {closeAfterSearch: true, closeAfterReset: true, closeOnEscape: true});

我没有测试过这样的设置,而是我的标准设置

$.extend(
    $.jgrid.search,
    {
        multipleSearch: true,
        multipleGroup: true,
        recreateFilter: true,
        closeOnEscape: true,
        overlay: 0
    }
);

工作完美。

应该在jqGrid js-files之后和navGrid调用之前执行。您使用的语法this.Grid.navGrid似乎有点奇怪。