mycalf 发表于 2010-5-17 01:26:57

ExtJS+Codeigniter Grid 使用方法

本帖最后由 mycalf 于 2010-5-17 02:47 编辑

Codeigniter部分:


    function 函数名() {
       $this->db->where('字段', '匹配值');
      $data = $this->db->get('表'); //查找字段等于匹配值的所有记录
      $rows = $data->num_rows(); //记录数量
      $data = $data->result_array(); //将记录转为二维数组
      $data= json_encode($data); //生成json,为了传递给Ext.Grid
      return '({"total":"' . $rows . '","results":' . $data . '})';//输出json
    }



Ext部分:


      var record = new Ext.data.Record.create([
            {name: '数据库中字段名'},
            {name: '数据库中字段名'}
             ………………
      ]); //定义从proxy中读取的字段

      var proxy = new Ext.data.HttpProxy({
            url: '<?=site_url('输出JSON的路径');?>',
            method: 'POST'
      });//定义路径


      var reader = new Ext.data.JsonReader({
            root: 'results' //这里是和PHP结合的一个关键点。很多人读取不出数据,应该是这里出的问题。请注意root: 'results' 中results和Codeigniter函数输出部分'({"total":"' . $rows . '","results":' . $data . '})'。results就是读取$data信息。
      },
      record //这里调用record,将Ext中要读取的字段和results中的数据结合。
      );


      var store = new Ext.data.Store({
            proxy: proxy,
            reader: reader
      });//这里没什么好说的。就是将所有配置绑定在一起。


      var columns = new Ext.grid.ColumnModel([
            new Ext.grid.RowNumberer(),
            {header: "Grid里列的名称", dataIndex: '对应字段'},
            {header: "Grid里列的名称", dataIndex: '对应字段', align : 'center',//注意,这里并没有结束,下面是对字段的判断
                renderer : function(字段) {
                  if (字段 == "true"){return "<img src='<?php echo base_url();?>/图片路径/true.png'>";}
                }
            },
      ]);//这里是对Grid进行排版。

      var grid = new Ext.grid.GridPanel({

            store: store,
            cm: columns,
            selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),
            }
         ); //好了。将所有设置,调用进Grid。
       store.load({ params: { object:'grid'} }); //读取数据并POST值

deader 发表于 2011-5-16 08:25:36

楼主,我刚开始学extjs,请问有extjs4.0的资料没?
网上找到的资料基本上都是2或者3版本的,跟新的不一样:Q
页: [1]
查看完整版本: ExtJS+Codeigniter Grid 使用方法