+ -
当前位置:首页 → 问答吧 → extjs二级或者更加多继承的问题

extjs二级或者更加多继承的问题

时间:2011-03-16

来源:互联网

JScript code
Ext.namespace("Kext.tree");

Kext.tree.ReadOnlyAsyncTreePanel = Ext.extend(Ext.tree.TreePanel, {

    root: new Ext.tree.AsyncTreeNode({
        text: '只读动态加载树',
        draggable: false,
        id: '0'
    }),

    loader: null,

    constructor: function () {

        Kext.tree.ReadOnlyAsyncTreePanel.superclass.constructor.call(this, {
            root: this.root,
            width: 300,
            //height: 300,
            useArrows: true,
            autoScroll: true,
            animate: true,
            tbar: ["123", "345"]  //行1 

        });
    }
});

Kext.tree.DBDictTreePanel = Ext.extend(Kext.tree.ReadOnlyAsyncTreePanel, {


    constructor: function (str_rootName) {
        if (str_rootName != undefined) {
            this.root.setText(str_rootName);
        }

        this.loader = new Ext.tree.TreeLoader({
            dataUrl: './c/Tree.ashx?action=dbs',
            listeners: {
                "beforeload": function (treeLoader, node) {
                    if (null != node.parentNode) {
                        this.baseParams.pnt = node.parentNode.text;
                    } else {
                        this.baseParams.pnt = node.text;
                    }
                    this.baseParams.nt = node.text;
                    this.baseParams.nd = node.getDepth();
                }
            }
        }),

        Kext.tree.DBDictTreePanel.superclass.constructor.call(this, {
            tbar: ["123213141", "sdfawer"]  //行2
        });
    }
});



如代码所示,ReadOnlyAsyncTreePanel继承treepanel,DBDictTreePanel 再继承ReadOnlyAsyncTreePanel,ReadOnlyAsyncTreePanel没定义tbar,想在DBDictTreePanel 中想增加,在DBDictTreePanel.superclass.constructor.call里面增加没效果,要在ReadOnlyAsyncTreePanel的构造函数里面增加才有效(见行1),也就是说行2是没效的,要怎么才让子类的tbar覆盖父类的tbar?

作者: p2227   发布时间: 2011-03-16

JScript code
Kext.tree.ReadOnlyAsyncTreePanel = Ext.extend(Ext.tree.TreePanel, {

    root: new Ext.tree.AsyncTreeNode({
        text: '只读动态加载树',
        draggable: false,
        id: '0'
    }),

    loader: null,

    constructor: function (o) {
var cfg = {
.....
        };
if(o) {
Ext.apply(cfg, o);
}
        Kext.tree.ReadOnlyAsyncTreePanel.superclass.constructor.call(this, cfg);
    }
});

JScript code

Kext.tree.DBDictTreePanel = Ext.extend(Kext.tree.ReadOnlyAsyncTreePanel, {


    constructor: function (str_rootName) {
      ......

        Kext.tree.DBDictTreePanel.superclass.constructor.call(this, {
            tbar: ["123213141", "sdfawer"]  //行2
        });
    }
});



作者: aj3423   发布时间: 2011-03-17