jqGrid - 确定在搜索窗口中是否单击了查找或重置?

时间:2010-10-05 14:36:20

标签: jquery search callback jqgrid

我们正在使用jqGrid searching ..您如何确定用户是否点击了搜索,重置或已关闭搜索窗口?

有一个onClose事件,但它似乎没有任何指示操作的参数。

...

2 个答案:

答案 0 :(得分:1)

您问题的答案取决于您希望如何使用这些信息。如果您希望调用回调函数,可以将beforeShowSearchonClose一起使用:

$("#list").jqGrid('navGrid', '#pager',
    {edit: false, add: false, del: false, search: true, refresh: true},// options
    {}, // settings for edit
    {}, // settings for add
    {}, // settings for delete
    {beforeShowSearch: function(form){
        $('.ui-search',form).click(function(){
            alert("in onSearch");
        });
        $('.ui-reset',form).click(function(){
            alert("in onReset");
        });
     },onClose: function(data){
            alert("in onClose");
     }
    } // search options
);

您应该考虑到,您的onSearchonReset函数将在主事件处理程序后被称为,因此搜索请求或重置请求是已经发送。如果您需要在搜索之前信息,或重置beforeRequest请求的使用情况,那么我似乎非常好。如果您需要搜索规则,可以使用$("#list").jqGrid('getGridParam','postData')$("#list")[0].p.postDatapostDatasearchFieldsearchOpersearchString(如果是Single Searching)或filters(如果Advanced Searching)组。如果是“重置”,则参数为空:“”。

答案 1 :(得分:0)

作为解决方法,我们正在使用beforeRequest网格事件。

如果没有执行搜索,f变量将为false,否则为true:

beforeRequest: function() {
    var m = $("#status-header").is(":visible");
    var f = $("#list").getPostDataItem('_search');

    if ((m && !f) || (!m && f)) {
            $("#status-header").toggle('highlight',{},500);
    }       
},