浏览 2183 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-09
最后修改:2011-06-18
主要修改该js里面的两个方法:buildQuery : function (filters)和cleanParams : function (p) buildQuery : function (filters) { var p = {}; var s = [];//临时保存所选的所有filter for(var i=0, len=filters.length; i<len; i++){ var f = filters[i]; // f = {dataIndex, data, ....}; //alert(JSON.stringify(f)); if(f.data['comparison']!=null) { if(!p[f.field]) { p[ f.field ] = ''; } p[f.field] += f.data['comparison'] + '@' + f.data['value'] +','; }else { p[f.field] = f.data['value']; } s.push(f.field); } p["buildQuery_gridFilterList"] = s.join(","); return p; }, cleanParams : function (p) { //alert(JSON.stringify(p)); var s = p["buildQuery_gridFilterList"] || "" ; var k = s.split(","); for(var i=0, len=k.length; i<len; i++){ var f = k[i]; delete p[f]; } }, 用firebug调试,可以看到参数自动以“key=value”的形式附加到url请求中了。 注意,如果grid指定了PagingToolbar,要注意给PagingToolbar增加plugins: filters(这里为你定义的filters对象变量名),这样才能带参数条件正常地翻页查询,不然翻页查询会出现错误的情形:如你在第2页的时候,突然去改变查询条件查询数据,会发现查不到数据(其实是有数据的),原因是分页组件的start值没有正确复位回0,导致系统直接去获取第二页的数据,如果你所查询的数据只有一页,那当然是没结果显示了)。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |