0

私は ExtJS の初心者です。tree.Panel のアイテムをクリックするたびに新しいパネルをロードする必要があります。

これが新しいパネルを作成するコードです(デフォルト)

var contentPanel = Ext.create('Ext.panel.Panel', {
        id: 'content-panel',
        region: 'center',
        layout: 'card',
        activeItem: 0,
        border: false,
        items: [dict_modules['profiles-area']]
    });

tree.Panel を作成するためのこのコード

var treePanel = Ext.create('Ext.tree.Panel', {
        id: 'tree-panel',
        store: store,
        height: '100%',
        rootVisible: false
    });

これは、tree.Panel のクリック ハンドラです。

treePanel.getSelectionModel().on('select', function(selModel, record){
    if (record.get('leaf')) {
        contentPanel.removeAll(true);
        contentPanel.add([dict_modules[record.data.id + '-area']]);
        contentPanel.doLayout();
    }
});

アプリが読み込まれると、次のようになります ここに画像の説明を入力

「専門」をクリックすると、このようになります(大丈夫です(!!!)) ここに画像の説明を入力

しかし(!!!)、「プロファイル」をクリックすると、次のようになります(なぜ????)

「コンテンツパネル」の上に、いくつかの行が表示されます ここに画像の説明を入力

そして、もう一度「専門」をクリックすると、このように表示されます (WHY???)

上部に線はありません!どうして???私が間違っていることは何ですか? ここに画像の説明を入力

4

1 に答える 1

1

このコードは問題を解決しました

treePanel.getSelectionModel().on('select', function(selModel, record) {
    if (record.get('leaf')) {
        Ext.getCmp('content-panel').layout.setActiveItem(record.getId() + '-area');
    }
});
于 2013-07-13T19:13:40.587 に答える