ExtJS行选中问题 this.getRow(row) is undefined

ExtJS3.1.1中,使用多个Menu展示详细信息,每个Menu中都嵌套一个Grid,但是当多个Menu同时打开并选中数据行的时候,前一次打开的Menu中的Grid行无法选中,并且在FireBug中报“this.getRow(row) is undefined”错误,在网上找了一下资料,也有人遇到此类问题,大概说是选择模型有问题,但是暂时没人能说出其个中缘由,可是有一个方法可以解决问题:

 

之前封装的GridPanel:

MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
    border: 
false,
    autoScroll: 
true,
    loadMask: 
true,
    sm: 
new Ext.grid.RowSelectionModel({
        singleSelect: 
true
    }),
    initComponent: 
function(){
        ……
        ……
        UBWS.Base.GridPanel.superclass.initComponent.call(
this);
    }
});

 

 

修改为:

MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
    border: 
false,
    autoScroll: 
true,
    loadMask: 
true,
    initComponent: 
function(){
        ……
        ……
        this.sm = new Ext.grid.RowSelectionModel({
          singleSelect: 
true
        });
        UBWS.Base.GridPanel.superclass.initComponent.call(
this);
    }
}); 


即sm的定义放在initComponent中,并早于superclass的initComponent调用。

 

 

posted on 2010-05-19 22:42  micki  阅读(2193)  评论(0编辑  收藏  举报

导航