ボタンがクリックされたときにツリーを作成しようとしています。基本的にこのビューは上部にツールバーがあり、ツールバーの下にツリーを表示したい。まず、どの 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 つのセクションに分割されているためです。ビューを表示するたびに、アプリケーションの中央領域を取得して表示します。