【Jquery】【控件】flexigrid 自定义查询

最近用flexigrid作报表,需要自定义条件进行查询,界面如下:

【Jquery】【控件】flexigrid 自定义查询_第1张图片

翻了半天文档也没找到如何用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到服务器上。

【Jquery】【控件】flexigrid 自定义查询_第2张图片

 另外我还写了一个获取参数的小插件:

(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);

  

你可能感兴趣的:(flexigrid)