ext版本为2.1
1. 自定义GridPanel类
Ipms.OrderGridPanel = function (id, title, iconCls) {
// ..
this._selections = new Ext.grid.CheckboxSelectionModel();
// ..
Ipms.OrderGridPanel.superclass.constructor.call(this, {
// ..
sm: this._selections // 注意
//..
});
};2. 上述代码,显示的定义了GridPanel关联到SelectionModel。同时提供了方法,来getSelectionModel如下:
var odGridPanel = new Ipms.OrderGridPanel('OrderGridPanel','订单列表'),
sm = odGridPanel.getSelectionModel();3. 熟悉SelectionModel的er都知道,SelectionModel也可以获取所属Grid的引用,如下:
var parentGrid = sm.grid; // sm即为上面实例化的SelectionModel
4. 直接访问对象的属性,就不是面向对象的作风。一会儿用接口访问,一会儿直接访问,这是要闹哪样?当然了,这不是重点。这里想知道的是是否有更优雅的解决方案,实现组合元素的相互访问?
5.Ext2.1的做法,是grid在render的时候调用SelectionModel的init方法,并把grid做为参数传递进去。如下:
// grid private
onRender : function(ct, position){
Ext.grid.GridPanel.superclass.onRender.apply(this, arguments);
// ..
this.getSelectionModel().init(this); // 注意
this.view.render();
},// Ext.grid.AbstractSelectionModel
init : function(grid){
this.grid = grid;
this.initEvents();
},6.待更新。。
转载于:https://blog.51cto.com/wangyuelucky/1346949
本文深入分析了Ext.js中GridPanel类与SelectionModel的交互机制,通过实例展示了如何实现GridPanel与SelectionModel之间的优雅访问,并讨论了在不同场景下选择合适的访问方式以提高应用效率。
1146

被折叠的 条评论
为什么被折叠?



