javascript - 嵌套在 vbox 中的 hbox 不显示 ExtJS

标签 javascript web extjs

我正在使用 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();

我想创建这个: enter image description here

出了什么问题?我尝试了宽度/高度和弯曲,但它不起作用。

最佳答案

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

关于javascript - 嵌套在 vbox 中的 hbox 不显示 ExtJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46914588/

相关文章:

javascript - React 列表的无限滚动

javascript - ajax post之后mvc url太长

javascript - for 循环中的闭包

html - CSS 样式表和自定义字体

Javascript:如何将 Javascript 图像链接到页面?

javascript - 未捕获的类型错误 : undefined is not a function/Ext. 需要/ExtJS

javascript - 将函数定义为成员而不执行它

javascript - 如何使用 componentDidMount() 发出多个 axios.get() 请求并将第一个响应值分配给第二个?

amazon-web-services - AWS 网络负载均衡器会将来自多个客户端的 HTTP 请求复用到同一个 TCP 连接吗?

javascript - Extjs6 : Get Clipboard data on Keydown event of combobox