Extjs GridPanel 常用属性总结

1、gridpanel继承了panel,其xtype为Grid,表格的列信息有类Ext.grid.ColumnModel( )定义,表格的数据存储器由Ext.data.Store( ),存储器根据解析的数据不同,可分为 JsonStore,SimpleStore,GroupingStore等

 

2、cm中的列信息包括首部显示文本header,列对应的记录集字段dataIndex,列是否排序sortable,列的渲染函数renderer,宽度width,格式化信息format等

 

3、ds可以把任何格式的数据转化成gird可以使用的形式,有两部分proxy和reader,proxy指获取数据的方式,reader是指如何解析这堆数据。这里用Ext.data.MemoryProxy专门解析JavaScript变量的。需要一次store.load进行初始化。远程读取数据使用ScriptTagProxy。

 

4、在Ext.data.ArrayReader( {},[

     { name:'id',mapping:2}//说明将序列号这一列改成第三列

    ])

 

5、在创建Grid时,可以定义属性enableColumnMove:false和enableColumnResize:false可以禁用grid默认的拖放列和改变列的宽度。

 

6、stripeRows:true 实现斑马线效果

loadMask:true实现读取数据时的遮罩和提示功能,就是出现一个加载的框,但是store.load( )在建立grid之后

viewConfig:{forceFit:true}使每列自动填充grid,若设置了列的宽度,则会按照比例计算。

autoExpandColumn:‘descn’ 可以让指定列descn的宽度自动伸展,但必须在cm中指定列中定义id:’descn’,只能指定一列伸展

在ds中加入sortInfo:{field:’name’, direction:’ASC’} 将按照name这一列正向排序

 

7、在ds的reader里设置type:’date’ 和dateFormat:’Y-m-dTH:i:s’,其中type是reader解析时把这一列作为日期类处理,dateFormat是把得到的字符串转换成相应的日期格式,还需要在cm中添加一行配置,配置了renderer属性用于格式化日期格式的数据,renderer:Ext.util.Format.dateRenderer(‘Y-m-d’),还要加上type:’date’属性

 

8、Value是单元格的值;cellmeta是单元格的相关属性,主要有id和css;record是这行数据的对象,如果要获取其他列的值,可以通过record.data['id']的方式得到;rowIndex是行号,columnIndex是列号;store是构造表格时传递的ds,也就是说表格的所有数据都可以通过store获得

 

9、自动行号的实现可以再cm中添加一行代码,放在最上面一行,new Ext.grid.RowNumberer( )

 

10、删除一行,可以创建一个id为remove的按钮,然后用代码Ext.get(‘remove’).on(‘onclick’,function(){

store.remove(store.getAt(1) );//删除第二行

Gird.view.refresh();//刷新行号

})

 

11、grid.GridPanel默认的是行选择模型,行选择模型默认的是支持多选的,鼠标点击时按住shift或ctrl键就可以选择多行,如果希望只选择一行,需要在grid中设置 sm:new Ext.grid.RowSelectionModel({singleSelect:true}),另外一个选择模型就是 CellSelectionModel单元格选择模型,每次只允许选择一个单元格,在EditorGrid里默认使用的就是单元格选择模型。

 

12、Var selections=grid.getSelectionModel( ).getSelections( );

先从grid中获得SelectionModel,再从选择模型中获得当前选中的数据,selecitons.length是选中的记录条数。若果需要判断是否选择了记录,只需要selections.length是否等于0即可。

注意:tree对象中也有两种选择模型,默认的是DefaultSelectionModel每次只能选择一个节点,另外还有一个MultiSelectionModel,它可以使用ctrl键选择多个节点(注意:不允许使用shift键)

 

13、grid.getView( )必须在创建Ext.grid.GridPanel之后调用,它只能获得grid创建好的GridView实例。在viewConfig中设置参数,columnsText,sortAscText,sortDesnText这三个参数分别用来设置表格中每列的下拉菜单中的‘显示的列’,‘升序’,‘降序’这3个部分显示的文字。scrollOffset:30 显示表格右侧滚动条预留的宽度,默认是20px;

 

14、若想出现滚动条,则需定义grid高度。

 

15、分页工具条用pageSize说明一页显示几条数据,displayInfo是否显示数据信息,displayMsg只有当 displayInfo为true时才有效,用来显示有数据时的提示信息,{0},{1},{2}会自动被替换成对应的数据,emptyMsg没有数据时显示的信息。注意用分页工具条时需要将store.load( )在构造grid之后。

 

16、若要从本地读取数据,这需要将MemoryProxy改成PagingMemoryProxy

 

17、若要进行远程排序,就需要在ds中设置remoteSort:true。

 

18、若要对表格进行编辑,需要在cm中增加属性 editor:new Ext.grid.GridEditor(new Ext.form.TextField({ allowBlank:false})),还需要将GridPanel改成EditorGridPanel。默认双击单元格才能编辑,可以再grid修改增加属性clicksToEdit:1,表示单击就可以修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Ext.grid.feature.Grouping 插件来进行单元格合并。以下是示例代码: ``` Ext.create('Ext.grid.Panel', { title: 'My Grid Panel', store: myStore, columns: [ { text: 'Name', dataIndex: 'name', flex: 1 }, { text: 'Age', dataIndex: 'age', flex: 1 }, { text: 'Salary', dataIndex: 'salary', flex: 1 } ], features: [{ ftype: 'grouping', groupHeaderTpl: '{columnName}: {name} ({rows.length})', hideGroupedHeader: true, startCollapsed: true, groupByText: 'Group by this field' }], renderTo: Ext.getBody() }); ``` 在上述代码中,我们创建了一个包含三列的 GridPanel,并使用 Ext.grid.feature.Grouping 插件进行了单元格合并。我们使用 groupHeaderTpl 属性来指定分组的标题,hideGroupedHeader 属性来隐藏已分组的列的标题,startCollapsed 属性来指定分组初始时是否折叠,groupByText 属性来指定分组菜单项的文本。 如果您想要根据特定的列进行分组和合并,则可以使用 groupField 属性来指定要分组的列的名称。例如: ``` Ext.create('Ext.grid.Panel', { title: 'My Grid Panel', store: myStore, columns: [ { text: 'Name', dataIndex: 'name', flex: 1 }, { text: 'Age', dataIndex: 'age', flex: 1 }, { text: 'Salary', dataIndex: 'salary', flex: 1 } ], features: [{ ftype: 'grouping', groupHeaderTpl: '{columnName}: {name} ({rows.length})', hideGroupedHeader: true, startCollapsed: true, groupByText: 'Group by this field', groupField: 'age' }], renderTo: Ext.getBody() }); ``` 在上述代码中,我们将 groupField 属性设置为 'age',这意味着我们将根据 'age' 列进行分组和合并。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值