ExtJS表格控件详解:从基础到实践
需积分: 10 94 浏览量
更新于2024-09-11
收藏 74KB DOC 举报
“Ext表格控件是ExtJS框架中用于展示数据的一种重要组件,适用于初学者学习使用。通过本文档,您可以了解到如何在ExtJS中创建和配置表格,包括设置属性、定义列模型、数据存储器的类型以及如何从远程获取数据。”
在ExtJS中,表格控件(Ext.grid.GridPanel)是一种强大的组件,它基于Ext.Panel并提供了丰富的功能来展示结构化的数据。表格的列信息由Ext.grid.ColumnModel定义,每个列都有特定的属性,如header(列头文本)和dataIndex(对应数据源中的字段名)。例如,创建一个包含“角色”、“等级”和“创建日期”的表格,可以这样定义列模型:
```javascript
var cm = new Ext.grid.ColumnModel({
{ header: '角色', dataIndex: 'role' },
{ header: '等级', dataIndex: 'grade' },
{ header: '创建日期', dataIndex: 'createDate', type: 'date', renderer: Ext.util.Format.dateRenderer('Y年m月d日') }
});
```
数据存储器(Ext.data.Store)是表格数据的容器,它可以是JsonStore、SimpleStore或GroupingStore等不同类型的实例,根据数据源的格式选择合适的存储器。例如,创建一个内存数据存储器(MemoryProxy)并用ArrayReader解析数据:
```javascript
var data = [
['士兵', '7', '2011-07-24 12:34:56'],
['将军', '10', '2011-07-24 12:34:56']
];
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.ArrayReader({}, [
{ name: 'role', mapping: 1 },
{ name: 'grade', mapping: 0 },
{ name: 'createDate', mapping: 2, type: 'date', dateFormat: 'Y-m-d H:i:s' }
])
});
store.load();
```
最后,将ColumnModel和Store装配到GridPanel中,完成表格的创建:
```javascript
var grid = new Ext.grid.GridPanel({
renderTo: 'grid',
store: store,
cm: cm
});
```
除了本地数据,表格还可以从远程服务器获取数据,例如使用ScriptTagProxy,它会通过<script>标签异步加载JSON数据。这种方式通常用于从服务器端API获取数据,代码如下所示:
```javascript
var store = new Ext.data.Store({
proxy: new Ext.data.ScriptTagProxy({
url: 'http://example.com/your/data/source',
success: function(response) {
// 处理成功回调
},
failure: function() {
// 处理失败回调
}
}),
reader: new Ext.data.JsonReader({
root: 'rows', // 数据的根节点
totalProperty: 'total' // 总记录数的属性名
})
});
store.load();
```
以上就是关于ExtJS表格控件的基础知识,包括其创建、属性设置、数据获取和远程数据加载。理解这些概念对于开发基于ExtJS的应用至关重要,尤其是当需要处理大量结构化数据时。
4111 浏览量
4567 浏览量
107 浏览量
点击了解资源详情
点击了解资源详情
2011-06-17 上传
156 浏览量
2008-02-23 上传
美人如玉
- 粉丝: 0
- 资源: 1
最新资源
- 马可波罗左侧商品列表导航菜单
- firebat-console:幻影加载工具的控制台助手
- 迈普文化
- x9chroot:创建和/或进入一个简单的chroot环境进行测试
- etch-a-sketch:Web 浏览器蚀刻草图
- Sprucemarks-crx插件
- Synergy_1_10_2 Pro安装包.zip
- bigdata_10_redis:Jedis相关API的练习
- Chess2:David Sirlin的Chess 2的python实现
- 博客前
- 高效团队建设讲义PPT
- prometheus-2.17.2.linux-amd64.tar.gz
- filesharing-app
- 爱淘宝导航分类、菜单栏目可伸缩展开
- torch_sparse-0.6.5-cp37-cp37m-win_amd64whl.zip
- 多斯