【问题标题】:Extjs where to add a dynamically created panel object to my existing panelExtjs 在哪里将动态创建的面板对象添加到我现有的面板
【发布时间】:2025-11-24 13:25:01
【问题描述】:

在我的代码中,我创建了一个面板对象,如下所示:

var grid = Ext.create('Ext.grid.Panel', {});

然后我试图定义一个小部件,它应该包含上面的面板作为它的项目之一。 我得到了我的小部件的定义工作正常。但是我怎样才能包含上面的网格对象,以便它作为小部件的一部分呈现:

Ext.define('Ext.simplegridwidget.GridTest', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.gridtest',
    title: 'User Management'
});

【问题讨论】:

    标签: javascript extjs widget panel


    【解决方案1】:

    一种更好的方法,使与我的小部件相关的所有内容都保留在类定义中...

      Ext.define('Ext.simplegridwidget.GridTest', {
            extend: 'Ext.panel.Panel',
            alias: 'widget.gridtest',
            title: 'User Management',
            initComponent: function() {
    
                var grid = Ext.create('Ext.grid.Panel', {});
    
                Ext.apply(this, {
                   items: [ grid, details]
               });
    
               return this.callParent(arguments);
            }
        });
    

    【讨论】:

      【解决方案2】:

      好吧..想通了。毕竟难度不大……

         var grid = Ext.create('Ext.grid.Panel', {});
      
         Ext.define('Ext.simplegridwidget.GridTest', {
              extend: 'Ext.panel.Panel',
              alias: 'widget.gridtest',
              title: 'User Management',
              items: [grid]
          });
      

      【讨论】: