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值
楼主,我刚开始学extjs,请问有extjs4.0的资料没?
网上找到的资料基本上都是2或者3版本的,跟新的不一样:Q
页:
[1]