【Jquery】【控件】flexigrid 自定义查询
最近用flexigrid作报表,需要自定义条件进行查询,界面如下:
翻了半天文档也没找到如何用POST方法自行传递参数进行查询。
找了一个台湾人写的博客,却要改flexigrid的源代码,更不靠谱。
后来在StackOverflow上发现解决方法。
代码如下:
var postData = { "AreaCode": areaCode, "HasChild": hasChild, "CarId": carId, //.... }; var params = []; for (var item in postData) { params.push({ "name": item, "value":postData[item] }); } $('#flex1').flexOptions({ params: params }).flexReload();
flexigrid的刷新方法是调用flexReload()。在刷新前传入参数。
需要注意的是,params必须是name-value格式的数组,否则在POST的时候,flexigrid将无法解析参数。
调用flexReload后,我们会看到flexigrid将自定义的参数Post到服务器上。
另外我还写了一个获取参数的小插件:
(function ($) { $.fn.flexGetParams = function (p) { // 插件 获取flexigrid的params var p, params; this.each(function () { if (this.grid) p = this.p; }); params = { page: p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, qtype: p.qtype, query: p.query }; return params; } })(jQuery);