ExtJS实现表格控件详解

需积分: 9 1 下载量 82 浏览量 更新于2024-08-18 收藏 895KB PPT 举报
"这篇文档主要介绍了ExtJS中的表格控件Ext.grid.GridPanel的使用方法,包括如何制作简单的表格,以及涉及到的关键组件如ColumnModel和数据存储器。" 在ExtJS中,`Ext.grid.GridPanel`是用于展示数据并支持分页的控件,它提供了丰富的功能,如排序、缓存、拖动列、隐藏列、行号显示、列汇总以及单元格编辑等。GridPanel是Ext.Panel的子类,它的xtype是'grid'。在构建表格时,有两个核心组成部分:列定义(ColumnModel)和数据存储器(Data Store)。 列定义(ColumnModel) 列定义决定了表格的头部显示和数据绑定。例如,通过创建一个`Ext.grid.ColumnModel`实例来设定列的结构。以下是一个简单的示例: ```javascript var cm = new Ext.grid.ColumnModel([ { header: '编号', dataIndex: 'id' }, { header: '名称', dataIndex: 'name' }, { header: '描述', dataIndex: 'descn' } ]); ``` 这里,`header`属性用于设置列头显示的文本,而`dataIndex`属性则对应数据源中的字段名。设置`cm.defaultSortable=true`可以让所有列默认可排序。 数据存储器(Data Store) 数据存储器负责管理表格的数据,可以是`Ext.data.Store`的实例,根据数据源的不同,还可以选择`JsonStore`、`SimpleStore`或`GroupingStore`等。例如,如果数据来源于JSON格式,可以使用`JsonStore`: ```javascript var store = new Ext.data.JsonStore({ url: 'your_data_source_url', root: 'rows', fields: ['id', 'name', 'descn'] }); ``` 这里的`url`是数据来源的URL,`root`指定JSON数据中包含记录的数组名,`fields`定义了与列定义匹配的字段。 创建简单表格的步骤 1. 定义ColumnModel,包含表格的所有列。 2. 创建数据存储器,指定数据来源和结构。 3. 创建GridPanel实例,将ColumnModel和Store作为参数传入。 ```javascript var grid = new Ext.grid.GridPanel({ title: '简单表格', store: store, cm: cm, width: 400, height: 200, renderTo: Ext.getBody() // 渲染到页面上 }); ``` 以上代码创建了一个简单的表格,并将其渲染到页面上。 `Ext.grid.GridPanel`是ExtJS中用于数据展示的强大工具,结合ColumnModel和各种数据存储器,可以灵活地实现各种数据表格的需求。通过理解这些基本概念和步骤,开发者能够构建出功能丰富的交互式表格应用。