如何将(现有)面板添加到 Tree ItemClick 上的区域中

Posted

技术标签:

【中文标题】如何将(现有)面板添加到 Tree ItemClick 上的区域中【英文标题】:How to add a (existing) panel into a region on a Tree ItemClick 【发布时间】:2013-06-03 11:38:52 【问题描述】:

我认为这很简单,但我不知道如何在视口区域的 Tree ItemClick 上加载现有面板!?

TreeController 被剪断

init: function() 
    this.control(
        'treemenu': 
            itemclick: function(view, node, record, item, index, e ) 
                if(node.isLeaf()) 

                 
            ,
            itemexpand: function (t,e)
                console.log(t.data.value);
            
        
    );


视口被剪断:


    region: 'center',
    layout: 'fit',
    items: [
        xtype: ''
    ]


网格面板:

Ext.define('MyProject.view.FlyerGrid', 
    extend: 'Ext.grid.Panel',
    alias: 'widget.flyergrid',
    border:'0 0 0 0',
    title:'Flyer Übersicht',
    bbar: Ext.create('Ext.toolbar.Paging', 
        //store: store
        ),
    columns: [
         text: 'Typ',  dataIndex: 'type',flex:1 ,
         text: 'year',  dataIndex: 'year' ,flex:1,

    ]

);

【问题讨论】:

只是一个提示:要获得更多响应,请始终至少使用 extjs 标记以及特定的版本标记。您使用的其他标签或多或少毫无价值 好的,谢谢提示! 【参考方案1】:

首先定义一个引用来获取面板和视图

refs: [
    ref: 'panel',
    selector: 'panel[region=center]' // you might give the panel a itemId instead of using region=center
]

以及将添加视图的控制器方法

showPanel: function(view, node, record, item, index, e ) 
    if(node.isLeaf) 
        var grid= this.getFlyerGrid();
        if(!grid) 
            this.getPanel().add(xtype:'flyergrid');
        
    

作为 ref 的替代方式,您还可以使用 Ext.ComponentQuery 假设您是否需要为每个记录 ID 设置一个网格并删除旧的

showPanel: function(view, node, record, item, index, e )  
    if(node.isLeaf) 
        var grid= Ext.ComponentQuery.query('flyergrid[itemId=record.data.id]');
        if(!grid) 
            var panel = this.getPanel();
            Ext.suspendLayouts();
            panel.removeAll();
            panel.add(xtype:'flyergrid',itemId:record.data.id);
            Ext.resumeLayouts(true);
        
    

更新您的控件

this.control(
        'treemenu':  itemclick: this.showPanel
    
);

请注意,所有这些代码都未经测试,应该只是向您展示技巧。

【讨论】:

以上是关于如何将(现有)面板添加到 Tree ItemClick 上的区域中的主要内容,如果未能解决你的问题,请参考以下文章

如何将列添加到现有表?

当网格达到一定高度时,如何将垂直滚动条添加到 ext 网格面板?

如何将文档侦听器添加到面板内的 JTextFields?

如何将外键添加到现有表?

如何将 AUTO_INCREMENT 添加到现有列?

如何将现有表单添加到新项目?