1

ボタンがクリックされたときにツリーを作成しようとしています。基本的にこのビューは上部にツールバーがあり、ツールバーの下にツリーを表示したい。まず、どの xtype を使用すればよいか混乱しています。

xtype : 'treepanel'

またはその

xtype : 'treeview'.

これが私のツリーのコードです

Ext.define('Campus.view.Hierarchy', {
    alias: 'widget.hierarchy',
    extend: 'Ext.panel.Panel',

    initComponent: function () {
        var config = {
            xtype: 'panel',
            border: false,
            autoScroll: true,
            baseCls: 'topMenu',

            dockedItems: [{
                xtype: 'toolbar',
                border: false,
                dock: 'top',
                items: [{
                    xtype: 'button',
                    text: LANG.BTADDREG,
                    iconCls: 'icon-add-tb',
                    cls: 'tip-btn',
                    iconAlign: 'right',
                    action: 'addRegion',
                    id: 'ADDREGION'
                }],
                items: [{
                    xtype: 'treepanel',
                    title: '',
                    border: false,
                    enableDD: true,
                    viewConfig: {
                        enableDD: true,
                        plugins: {
                            ptype: 'treeviewdragdrop'
                        }
                    },
                    collapsible: false,
                    useArrows: true,
                    rootVisible: false,
                    store: 'HierarchyTree',



                    multiSelect: false,
                    singleExpand: false,
                    id: 'TREE'

                }]
                var holder = Ext.getCmp('center');
                holder.remove(0);
                holder.add(Ext.apply(config));
            }    

app/store フォルダーでツリー ストアを定義すると、次のようなエラーが表示されるため、ツリー内でストアを定義しています。

me.store.getRootNode is not a function
node: me.store.getRootNode()

/モデル

Ext.define('App.model.HierarchyTree', {
extend : 'Ext.data.Model',
fields : ['Title', 'ID', 'LevelID', 'ParentID']
});

/店

Ext.define('App.store.HierarchyTree', {
extend : 'Ext.data.Store',
model : 'Campus.model.HierarchyTree',
storeID : 'HierarchyTree',

proxy : {
    type : 'ajax',
    url : 'data/Locations.aspx',
    reader : {
        type : 'json',
        root : 'Rows'
    },
    actionMethods : {
        create : 'POST',
        read : 'POST'
    },
    extraParams : {
        mode : 'HIERARCHYFULLLIST'

    }
},
autoLoad : true

});

また、使用するxtype :'treepanel'と、水平スクロールバーが表示されるだけで、他には何も表示されません。そして、私が使用するxtype: 'treeview'と、その表示

me.panel is undefined
treeStore = me.panel.getStore();

誰が私がやっている間違いを教えてください

編集

Ext.getCmp('center') に構成が適用されるのは、アプリケーションが 3 つのセクションに分割されているためです。ビューを表示するたびに、アプリケーションの中央領域を取得して表示します。

4

2 に答える 2

0

nsrobさん、ありがとうございます。あなたは素晴らしいです:)初心者にとって、あなたはとても辛抱強く助けてくれます。OK、ストアがロードされ、応答を確認できるようになりました

{"text":"Asia Pacific","id":"537","level":"1", "expanded": 
false,"singleClickExpand":true,"children":[{"text":"Japan", "cls":"xtreenode-Level2-
Indent", "id":"538", "hl1":"537","level":"2","singleClickExpand":true, "expanded": false,
"children":[{}]

しかし、何らかの理由で、ツリーが表示されません。AM はそれに取り組んでいます。そして、firebug ウィンドウで html を調べると、ツリーの同じ div id がドッキングされたメニューと重なっており、水平スクロールバーのようになっています。だから、間違いがどこにあるかを考えているだけです

于 2012-09-04T09:19:21.353 に答える