javascript - jqgrid - beforeSearch和afterSearch函数不被触发

标签 javascript jquery jqgrid

当用户尝试在 jqgrid 中过滤数据时,我试图显示进度条。但是,beforeSearch 和 afterSearch 函数不会被触发。

我尝试遵循文档:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:toolbar_searching但是,不确定我错过了什么......

这是 fiddle 手:http://jsfiddle.net/14f3Lpnk/1/

<table id="list"></table>
<div id="pager"></div>

var mydata = [
        {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"} ,
        {id:"2",invdate:"2010-05-25",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
        {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
        {id:"4",invdate:"2007-10-04",name:"blah",note:"stuff",tax:"10.00",total:"210.00"}        
    ];
jQuery("#list").jqGrid({
    data: mydata,
    datatype: "local",
    height: 150,
    rowNum: 10,
    ignoreCase: true,
    rowList: [10,20,30],
       colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
       colModel:[
           {name:'id',index:'id', width:60, sorttype:"int"},
           {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
           {name:'name',index:'name', width:100},
           {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number"},
           {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"},        
           {name:'total',index:'total', width:80,align:"right",sorttype:"float"},        
           {name:'note',index:'note', width:150, sortable:false}        
       ],
       pager: "#pager",
       viewrecords: true,
       autowidth: true,
       height: 'auto',
       caption: "Test Grid",
        beforeSearch: function () {
            alert('Filter Started');            
        },
        afterSearch: function () {
            alert('Filter Complete');            
        }
}).jqGrid('filterToolbar', { stringResult: true, searchOnEnter: true, defaultSearch: "cn" });

感谢任何帮助。

最佳答案

beforeSearchafterSearchfilterToolbar 方法的回调函数,而不是网格本身。所以你应该按以下方式使用那里

.jqGrid('filterToolbar', {
    stringResult: true,
    searchOnEnter: true,
    defaultSearch: "cn",
    beforeSearch: function () {
        alert('Filter Started');            
    },
    afterSearch: function () {
        alert('Filter Complete');            
    }
});

查看修改后的演示 http://jsfiddle.net/OlegKi/14f3Lpnk/2/

关于javascript - jqgrid - beforeSearch和afterSearch函数不被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630087/

相关文章:

javascript - 如何在 findAll 上的 node.js Sequelize 中具有多个关联/条件/包含

javascript - 重置 HTML 表单字段(避免撤消功能)

javascript - js.erb 渲染到布局中,未执行

jquery - jqGrid动态解析网格寻呼机ID?

javascript - 在 Firefox 中使用 URL 下载文件在 Angular JS 中不起作用

javascript - 在 JavaScript 中构建 HTML 的最佳实践

javascript - 根据变量加载特定的 SVG?

javascript - 尝试更新 DOM 中的 HTML 表值时出现错误

grails - Easygrid自定义格式化程序,用于创建链接-未生成

jquery - jQuery-UI 对话框内多个 jQuery-UI 选项卡中的 jqGrids 导致出现页面的水平滚动条