您的位置:首页 > Web前端 > JavaScript

Ext Js 表格(五)

2011-09-12 20:41 78 查看
表格由Ext.grid.GridPanel来定义,继承Ext.Panel。表格必须包含列定义信息,并指定表格的数据存储器。表格的列定义信息由Ext.grid.ColumnModel来定义,数据存储信息由Ext.data.Stroe(Ext.data.SimpleStore,Ext.data.JsonStore,Ext.data.GroupingStore)来定义。

类Ext.grid.GridView,GridView类是对Ext.grid.GridPanel用户界面的封装。为 产生特殊的现实效果,可以该类的一些方法来控制用户界面。注意请不要改变用户界面的DOM结构。

ColumnModel负责创建表格的列信息,表格的列信息包含首部的显示文本(header),对应的记录集字段(dataIndex),列是否可排序(sortable),列渲染函数(renderer),宽度(width),格式化(format)信息

一个完整的表格代码:

//复选框,身兼两职,既要放在ColumnModel里,又要放在GridPanel里

var sm = new Ext.grid.CheckboxSelectionModel();

var cm = new Ext.grid.ColumnModel([

new Ext.grid.RowNumberer(), // 自动显示行号

sm, // columnmodel里

{header: "姓名",

dataIndex: "name",// 对应的记录集字段

enableColumnMove:true, // 列可以拖放

enableColumnResize:true, // 列宽度可变

width: 80, // 舍得列的宽度

sortable: true, //使列可排序

renderer: function(value){// 渲染函数(renderer函数的参数有多个,详细可以查看API文档)

if(value.length> 6){

return"<span style='color:red;'>"+value+"</span>"

}else{

return"<span style='color:blue;'>"+value+"</span>";

}

}

},

{header: "年龄",dataIndex: "age"}

]);

var store = new Ext.data.Store({

proxy: new Ext.data.HttpProxy({url:"<%=path%>/test"}),

reader: new Ext.data.JsonReader({

totalProperty: "total", // 该属性指定记录数的总数

root: "root", // 该属性指定包含所有行对象的数组

idProperty: "id" // 记录每一行对象记录id的字段(可选)

},[

{name: "id"},

{name: "name",mapping:"na_me"},

{name: "age",mapping:"a_ge"}

])

});

var grid = new Ext.grid.GridPanel({

renderTo: "grid",

cm: cm,

sm: sm,

store: store,

autoHeight: true,

bbar: new Ext.PagingToolbar({

pageSize:10, // 每页显示几条数据

store: store,

displayInfo: true, // 必须为ture,displayMsg才能显示

displayMsg: "显示第{0}条到第{1}条记录,一共{2}条记录",

emptyMsg: "记录为空" // 没有记录的提示信息

})

});

store.load({

params:{start: 0,limit: 10}// 从0开始,最多取10条

}); // 必须在构造表格后执行,否则分页工具将不起作用

选择模型:

grid.on("click",function(){

// 获得选择模型,通过选择模型选择当前选中的行。

var selections =grid.getSelectionModel().getSelections();

for(var i=0;i<selections.length; i++){

var record =selections[i];

Ext.Msg.alert("提示",record.data.name + "--" + record.get("age")+ "--" + record.get("id"));

}

});

表格视图:Ext.grid.GridView:

Ext.data.Store可以看做model,Ext.grid.GridPanel可以看做controller,而Ext.grid.GridView可以看做view,通常情况下不用创建GridView的实例,GridPanel可以自动创建GridView的实例,可以通过gird.getView()获取当前的实例。我们可以在创建GridPanel时,通过viewConfig参数,作为初始化参数传递给GridView。

常用参数:

forceFit: true时,表格自动延伸每列长度,使内容填充表格。

ColumnText、sortAscText、sortDescText设置每列下拉菜单中得“显示的列”、“升序”、“降序”这三个部分的显示文字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: