ExtJS 将面板添加到面板

Posted

技术标签:

【中文标题】ExtJS 将面板添加到面板【英文标题】:ExtJS add panel to panel 【发布时间】:2012-01-08 00:14:23 【问题描述】:

我正在尝试将 2 个面板添加到已创建的面板(布局:拉伸,类型:hbox)。我在 firebug 中没有收到任何错误,但我的屏幕上似乎没有发生任何事情。

这是将 2 个面板添加到已定义面板的代码。

var variablesAttributesPanel = new Ext.Panel(
    id: 'variablesAttributesPanel',
    title: 'variablesAttributesPanel',
    autoScroll: true, 
    html: 'yeah1',
    layout: 
        align: 'stretch',
        type: 'vbox'
    ,
    flex: 1
);
var locationDatePanel = new Ext.Panel(
    id: 'locationDatePanel',
    autoScroll: true, 
    title: 'locationDatePanel',
    html: 'yeah2',
    layout: 
        align: 'stretch',
        type: 'vbox'
    ,
    flex: 1
);
Ext.getCmp('datasetInfoPanel').add(variablesAttributesPanel);
Ext.getCmp('datasetInfoPanel').add(locationDatePanel);
Ext.getCmp('datasetInfoPanel').update();
Ext.getCmp('datasetInfoPanel').doLayout();

关于我做错了什么有什么想法吗?

编辑

var datasetInfoPanel = new Ext.Panel(
    id: 'datasetInfoPanel',
    title: "Dataset Information", 
    region: "center", 
    autoScroll: true, 
    layout: 
        align: 'stretch',
        type: 'hbox'
    ,
); 

【问题讨论】:

你能显示你配置datasetInfoPanel的代码吗,问题似乎是你没有给出面板尺寸。 还有一件事。我不知道您使用的是哪个版本的 extjs,但更新方法不是用于刷新视图,而是用于为面板提供新的 html 或数据内容。查看文档,所以基本上你用一个空的 html 重写面板视图。 当然是在 Ext.onready() 中执行此操作? @nscrob 我创建了一个显示 datasetInfoPanel 配置的编辑。我也使用了更新,只是在添加面板之前从面板中清除当前的 html。 我的担心仍然是更新是在添加了两个面板之后,因此在添加了两个面板之后清除了 html。删除 update() ,如果您仍然看不到 2 个面板,请检查页面的来源,看看它们是否在没有尺寸的情况下呈现。 【参考方案1】:

试试看:

datasetInfoPanel.add(variablesAttributesPanel);
datasetInfoPanel.add(locationDatePanel);

从 variablesAttributesPanel 和 locationDatePanel 中删除布局配置。

【讨论】:

以上是关于ExtJS 将面板添加到面板的主要内容,如果未能解决你的问题,请参考以下文章

将帮助按钮添加到 Extjs 网格面板标题

将文本字段动态添加到 extjs 中的面板

extjs 动态地将项目添加到表单面板中

Extjs mvc 将记录添加到网格面板

ExtJs 编辑器网格面板的问题

Ext JS 5 - 将网格面板添加到视口