用于定义Grid的列
用例
var colModel = new Ext.grid.ColumnModel([
{header: "Ticker", width: 60, sortable: true},
{header: "Company Name", width: 150, sortable: true}
]);
回到ColumnModel,它的构造参数是一个config组成的数组,其中config定义为{
align : String //css中的对齐方式
dataIndex : String //要绑定的Store之Record字段名
fixed : Boolean //如果为真列宽不能被改变
header : String //头部显示的名称
hidden : Boolean //隐藏本列
id : String //主要用于样式选择,如果已定义此属性,那么列所在的单元格会定义class为 x-grid-td-id
renderer : Function //可以使用这个构造参数格式化数据
resizable : Boolean //可调节尺寸
sortable : Boolean // 可排序
width : Number //宽度
}
另外虽然未经声明,但config事实上支持editor:Ext.form.Field属性,这点会在Ext.grid.EditorGridPanel中看到,另外为了扩展grid的表现,我们通常也需要自定义列,顺便提一个有趣的列,Ext.grid.RowNumberer,这是Ext为我们扩展好的一个简单列,它的构造很简单,也没有其它的方法和属性,Ext.grid.RowNumberer({ header : String, sortable : Boolean, width : Number})如果使用它,上例可改为
var colModel = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
{header: "Ticker", width: 60, sortable: true},
{header: "Company Name", width: 150, sortable: true}
]);
属性
defaultSortable : Boolean //默认可排序
defaultWidth : Number //默认的宽度
setConfig : Object //返回构造时的config参数
方法
ColumnModel( Object config )
构造
getCellEditor( Number colIndex, Number rowIndex ) : Object
得到指定行列的编辑者
getColumnById( String id ) : Object
得到指定id的列对象
getColumnCount() : Number
得到列数
getColumnHeader( Number col ) : String
得到列头部文本
getColumnId( Number index ) : String
得到列id
getColumnTooltip( Number col ) : String
得到列提示
getColumnWidth( Number col ) : Number
列宽
getColumnsBy( Function fn, [Object scope] ) : Array
通过fn找到指定的列
getDataIndex( Number col ) : Number
得到指定列的数据绑定对象在store中的序号
getIndexById( String id ) : Number
通过id找序号
getRenderer( Number col ) : Function
得到绘制器
getTotalWidth( Boolean includeHidden ) : Number
总的宽度
hasListener( String eventName ) : Boolean
有事件侦听者?
isCellEditable( Number colIndex, Number rowIndex ) : Boolean
指定行列可编辑?
isFixed() : void
应该返回Boolean,充满?
isHidden( Number colIndex ) : Boolean
指定列隐藏?
isResizable() : Boolean
可重写义大小
isSortable( Number col ) : Boolean
可排序?
setColumnHeader( Number col, String header ) : void
设置指定列列头
setColumnTooltip( Number col, String tooltip ) : void
设置指定列提示
setColumnWidth( Number col, Number width ) : void
设置指定列宽度
setConfig( Array config ) : void
重设config
setDataIndex( Number col, Number dataIndex ) : void
设置指定列的数据源
setEditable( Number col, Boolean editable ) : void
设置指定列是否可编辑
setEditor( Number col, Object editor ) : void
为指定列设置编辑器
setHidden( Number colIndex, Boolean hidden ) : void
设置指定列隐藏
setRenderer( Number col, Function fn ) : void
为指定列设置输出方法
事件
columnmoved : ( ColumnModel this, Number oldIndex, Number newIndex )
configchanged : ( ColumnModel this )
headerchange : ( ColumnModel this, Number columnIndex, String newText )
hiddenchange : ( ColumnModel this, Number columnIndex, Boolean hidden )
widthchange : ( ColumnModel this, Number columnIndex, Number newWidth )
Ext.grid.PropertyColumnModel
继承自Ext.grid.ColumnModel,专为Ext.grid.PropertyGrid而设计,构造有点不同,不过这个api文档不知道谁写的,ext2中好象没有grid了,
PropertyColumnModel( Ext.grid.Grid grid, Object source )
Ext.grid.GridView
为GridPanel提供视图支持
config{
autoFill : Boolean
enableRowBody : Boolean
forceFit : Boolean
}
属性
columnsText : String //列文本
scrollOffset : Number //滚动步行
sortAscText : String //正序文本
sortClasses : Array //正序和倒序时头部列使用的样式,默认为["sort-asc", "sort-desc"]
sortDescText : String //倒序文本
方法
GridView( Object config )
构造
focusCell( Number row, Number col ) : void
指定第row行第col列得到焦点
focusRow( Number row ) : void
选中第row行
getCell( Number row, Number col ) : HtmlElement
得到指定行列的htmlelement对象
getHeaderCell( Number index ) : HtmlElement
得到指定列的表单头对象
getRow( Number index ) : HtmlElement
得到指定行的htmlelement对象
getRowClass( Record record, Number index, Object rowParams, Store ds ) : void
//得到指定行的样式?郁闷的是没有能在GridView.js中找到此方法的定义
refresh( [Boolean headersToo] ) : void
涮新显示
scrollToTop() : void
滚动到头部
Ext.grid.GroupingView
继承自Ext.grid.GridView,用于数据分组 ,应用于
config{
emptyGroupText : String //空的分组显示文本
enableGroupingMenu : Boolean //允许分组菜单
enableNoGroups : Boolean //允许分组/不分组显示
groupTextTpl : String //这是个模板,分组项的内容依此显示,语法参见模板,
hideGroupedColumn : Boolean //隐藏分组列
startCollapsed : Boolean //开始时收起,默认为假
}
另外虽然没有在api中说明,但groupByText和showGroupsText属性也是可以在config中指定的
方法
GroupingView( Object config )
构造
getGroupId( String value ) : void
取得指定值的分组id,为toggleGroup而准备的方法
toggleAllGroups( [Boolean expanded] ) : void
收起或展开所有的分组
toggleGroup( String groupId, [Boolean expanded] ) : void
展开或收起指定的分组,例grid.view.toggleGroup(grid.view.getGroupId('Horticulturalist'));会展开或收起分组字段值为'Horticulturalist'的分组
Ext.onReady(function() {
//定义数组
var arr=[ ['Bill', 'Gardener'], [ 'Ben', 'Horticulturalist'],['你', 'Gardener'],['他', 'Gardener'],[ '我', 'Horticulturalist'] ];
var reader = new Ext.data.ArrayReader(
{},
//定义数组到record的映射关系
[
{name: 'name'},
{name: 'occupation', mapping: 1}
]
);
//生成元数据
var store=new Ext.data.Store( {
reader:reader
});
store.loadData(arr);
//现在配置列信息
var col=new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer( {header:'序号',width:30}),
{header:'姓名',sortable: true,dataIndex:'name'},
{header:'职业',sortable: true,dataIndex:'occupation'}
]);
//配置视图信息
var view=new Ext.grid.GridView( {forceFit:true,sortAscText :'正序', sortDescText :'倒序'});
view.columnsText='列显示/隐藏';
//现在我们有一个可用的grid了,别骄傲这只是第一步
var grid=new Ext.grid.GridPanel( {
el:Ext.getBody(),
height:200,
width:400,
store:store,
cm:col,
view:view
});
grid.render();
//现在我们需要一个GroupingStore
var gstore=new Ext.data.GroupingStore( {
reader:reader,
groupField:'name',
groupOnSort:true,
sortInfo: {field: 'occupation', direction: "ASC"} //使用GroupingStore时必须指定sortInfo信息
});
gstore.loadData(arr);
//扩展一下我们的grid,让他能分组当然会更酷一点
var ggrid = new Ext.grid.GridPanel( {
ds: gstore,
cm:col,
view: new Ext.grid.GroupingView( {
forceFit:true,
sortAscText :'正序',
sortDescText :'倒序',
columnsText:'列显示/隐藏',
groupByText:'依本列分组',
showGroupsText:'分组显示',
groupTextTpl: '{text} ({[values.rs.length]} 条记录)'
}),
frame:true,
width: 400,
height: 300,
collapsible: true,
animCollapse: false,
renderTo:Ext.getBody()
});
});
分享到:
相关推荐
Ext.grid.ColumnModel显示不正常
- 示例:`reconfigure(new Ext.data.JsonStore(...), new Ext.grid.ColumnModel([...]))` #### 四、Ext.grid.Column详解 `Ext.grid.Column`代表了表格中的一列,可以通过以下配置项来定义其行为和外观: 1. **id*...
var cm = new Ext.grid.ColumnModel([ {header: 'Name', width: 200, dataIndex: 'name', editor: new Ext.form.TextField()}, {header: 'Age', width: 100, dataIndex: 'age', editor: new Ext.form.NumberField...
var grid = Ext.create('Ext.grid.Panel', { store: store, columns: columns, renderTo: Ext.getBody() // 渲染到页面 }); ``` 接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`...
3. **配置Column Model**: 创建一个Ext.grid.ColumnModel,定义每列的属性,如text(列标题)、dataIndex(与Model字段关联)和width。 4. **创建Grid Panel**: 创建一个Ext.grid.Panel实例,将Store、Model和...
69、Ext.grid.ColumnModel类 ……… 58 70、Ext.grid.PropertyColumnModel类 … 59 71、Ext.grid.GridView类 …………… 59 72、Ext.grid.GroupingView类 ………… 60 73、Ext.grid.EditorGridPanel类 ……… 62 74...
var cm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), sm, { header: '', dataIndex: 'id', width: 40 }, { header: '', dataIndex: 'name', width: 80 }, { header: 'Ա', dataIndex: 'sex', ...
69、Ext.grid.ColumnModel类 ……… 58 70、Ext.grid.PropertyColumnModel类 … 59 71、Ext.grid.GridView类 …………… 59 72、Ext.grid.GroupingView类 ………… 60 73、Ext.grid.EditorGridPanel类 ……… 62 74...
2. 定义表格列:使用Ext.grid.ColumnModel或者Ext.grid.column.Column定义列的配置,包括标题、宽度、数据绑定等。 3. 创建表格:使用Ext.grid.Panel或Ext.view.Table创建表格视图,并将其与数据源关联。 4. 配置...
var cm = new Ext.grid.ColumnModel([ {header: '编号', dataIndex: 'id'}, {header: '性别', dataIndex: 'sex'}, {header: '名称', dataIndex: 'name'}, {header: '描述', dataIndex: 'descn'} ]); ``` ...
例如,`Ext.grid.ColumnModel`可以用来设置每一列的显示样式和数据源。 4. **Grid Panel**:实际展示Grid的组件,它包含了Store、Column Model和其他配置项。通过`Ext.grid.Panel`创建一个Grid,配置`store`为数据...
本文介绍了Ext2.0框架中Grid控件的基本使用方法,包括如何定义ColumnModel、创建Store以及如何在Grid中添加CheckBox。通过这些基本的操作,我们可以构建出功能丰富且交互性强的数据展示界面。Ext2.0的强大之处在于它...
var cm = new Ext.grid.ColumnModel([ {header: '编号', dataIndex: 'id'}, {header: '性别', dataIndex: 'sex'}, {header: '名称', dataIndex: 'name'}, {header: '描述', dataIndex: 'descn'} ]); cm....
### EXTGrid属性方法详解 #### 一、Ext.grid.GridPanel `Ext.grid.GridPanel`是ExtJS 4.0中的一个关键组件,用于创建数据表格。以下为该组件的一些核心属性及其含义: - **store**: 数据存储器,用于存放表格的...
var col=new Ext.grid.ColumnModel([{ header:"姓名", dataIndex:"name", menuDisabled:true, align:"center"}, {header:"年龄", dataIndex:"age", sortable:true, align:"center"}, {header:"性别", dataIndex:...
var cm = new Ext.grid.ColumnModel({ columns: [ {header: '姓名', dataIndex: 'name', flex: 1}, { header: '生日', sortable: true, dataIndex: 'birthday', renderer: Ext.util.Format.dateRenderer...
var cmFatList = new Ext.grid.ColumnModel([ sm, // CheckboxSelectionModel { header: "ID", dataIndex: 'uid' }, { header: "Username", dataIndex: 'userName' }, { header: "Email", dataIndex: '...
var cm = new Ext.grid.ColumnModel([ {header: '编号', dataIndex: 'id'}, {header: '性别', dataIndex: 'sex'}, {header: '名称', dataIndex: 'name'}, {header: '描述', dataIndex: 'descn'} ]); // 设置...
var cm = new Ext.grid.ColumnModel([{header: '编 号', dataIndex: 'userId'}, ...]); var store = new Ext.data.Store({proxy: new Ext.data.MemoryProxy(data), ...}); var grid = new Ext.grid.GridPanel({...