博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

为Flexigrid添加获取整个数据集的方法

Posted on 2011-10-31 19:22  快乐家++  阅读(926)  评论(0编辑  收藏  举报
Flexigrid是一款很漂亮的Jquery的表格插件,具体的信息大家可以上网上查一查。由于公司要用,所以研究了好半天这个东西,由于官方并没有提供给完整的文档,所以研究起来很痛苦~~~

公司要求做到客户端界面上的增删查改,所以第一步就是如何获取到Flexigrid的数据集,只有获取到了数据集,才能对数据集进行操作。琢磨了源码好久,终于琢磨出来怎么做了。

 

首先我们要改源码,打开从官网上下载的flexigrid.js文件,定位到615行(有可能会不同),有如下的代码:

 

$.ajax({
        type: p.method,
        url: p.url,
        data: param,
        dataType: p.dataType,
        success: function(data){
          g.addData(data);
        },
        error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
      });

 

将其改成:

 

$.ajax({
        type: p.method,
        url: p.url,
        data: param,
        dataType: p.dataType,
        success: function(data){
          g.addData(data);
          //---Coldfox's code
          //use this you can get all data from grid
          p.data=data;
          //---Coldfox's code end
        },
        error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
      });

 

其实就添加了一句:p.data=data;

然后我们为这个插件添加一个新的方法。定位到文件的末尾,添加如下函数:

 

//Coldfox's code

$.fn.flexGetData = function() { // function to get data from grid
  var griddata = {total:1,page:1,rows:[]};
  this.each( function() {
   if (this.grid)    
    griddata = this.p.data;
  });
  return griddata;

 };
这样,我们在html页面中就可以获取到数据集了,只要调用新添加的方法即可。