【问题标题】:hbox nested in vbox not shows ExtJS嵌套在 vbox 中的 hbox 不显示 ExtJS
【发布时间】:2017-10-24 15:34:45
【问题描述】:

我正在使用 ExtJS 3.3.2,并且我有一个面板,其中一些面板嵌套在 vbox 和 hbox 中。问题很简单:我没有显示来自 hbox 内项目的数据,我尝试修改体重和身高,但它从未出现。查看代码 (F12),我看到数据已创建,但面板的尺寸非常小。

var i = 0;
jsonResp.forEach(function(currentItem) {
    i++;

var panel = new Ext.Panel({
    id: 'superpanel'+i,
    layout: 'vbox',
    height: 50,
    frame: true,
    collapsible: true,
    items: [{
        xtype: 'panel',
        id: 'jsonObject'+i,
        layout: 'hbox',
        frame: true,
        align: 'stretch',
        items:[{
            id: 'codigo'+i,
            xtype: 'panel',
            html: currentItem.codigo
        },{
            id:'nombre'+i,
            xtype: 'panel',
            html: currentItem.nombre
        },{
            xtype: 'panel',
            html: currentItem.estado.toString()
        }]
    },{
        xtype: 'panel',
        id: 'aviso'+i,
        html: "Error"
    }]
})
Ext.getCmp("contenedor").add(panel);
});
Ext.getCmp("contenedor").doLayout();

我想创建这个:

怎么了?我用宽度/高度和 flex 尝试了它,但它不起作用。

【问题讨论】:

    标签: javascript web extjs


    【解决方案1】:

    width: "100%"flex 可用于解决此问题。 以下是我的解决方法。

            Ext.onReady(function () {
    
            var viewport = new Ext.Viewport({
    
                items: [{
                    xtype: "panel",
                    title: "Test one",
                    width: 500,
                    height: 800,
                    id: "contenedor",
                    autoScroll: true
                }]
            });
    
            //delay for adding dynamic content
            setTimeout(function () {
                var parentPanel = Ext.getCmp("contenedor");
                for (var i = 0; i < 10; i++) {
                    var panel = new Ext.Panel({
                        id: 'superpanel' + i,
                        layout: 'vbox',
                        height: 100,
                        frame: true,
                        collapsible: true,
                        items: [{
                            xtype: 'panel',
                            id: 'jsonObject' + i,
                            layout: 'hbox',
                            frame: true,
                            align: 'stretch',
                            flex: 3,
                            width: '100%',
                            items: [{
                                id: 'codigo' + i,
                                flex: 1,
                                xtype: 'panel',
                                html: 'Demo html 1'
                            }, {
                                id: 'nombre' + i,
                                xtype: 'panel',
                                flex: 1,
                                html: 'Demo html 2'
                            }, {
                                xtype: 'panel',
                                flex: 1,
                                html: 'Demo html 3'
                            }]
                        }, {
                            xtype: 'panel',
                            id: 'aviso' + i,
                            html: "Error",
                            width: "100%"
                        }]
                    });
                    parentPanel.add(panel);
                }
    
                parentPanel.doLayout();
    
            }, 2000);
        });
    

    Fiddle 是用 ExtJS 3.4.1.1 创建的。遗憾的是,sencha fiddle 上没有可用的 3.2.2 版本。但这应该适用于 3.2.2。

    Fiddle 示例(使用 ExtJS 3.4.1.1)https://fiddle.sencha.com/#view/editor&fiddle/28ql

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 2012-09-20
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      相关资源
      最近更新 更多