无法查看我的 hbox 布局面板的 fieldLabel

Posted

技术标签:

【中文标题】无法查看我的 hbox 布局面板的 fieldLabel【英文标题】:Not able to view fieldLabel of my hbox layout panel 【发布时间】:2014-01-07 06:45:36 【问题描述】:

我有一个面板,布局是 hbox,我有两个文本文件作为面板的项目。

执行时无法查看 fieldLabels。请查找代码

         Ext.onReady(function()
        var panel = new Ext.Panel(
           title:"HBox Panel",
           layout:'hbox',
           width:300,
           height:200,
           renderTo:document.body,
           items:[
                    
                     xtype:"textfield",
                     fieldLabel:"Label1"
                    ,
                    
                     xtype:"textfield",
                     fieldLabel:"Label2"
                    

                 ]


           );
        );

注意:我正在开发 Ext 3.2.1

【问题讨论】:

【参考方案1】:

你的布局应该是form。来自api documentation:

fieldLabel 配置仅在此组件由 已配置为使用 FormLayout 布局的容器 经理(例如Ext.form.FormPanel 或指定布局:'form')。

【讨论】:

【参考方案2】:

如前所述,fieldLabel 选项仅适用于表单布局上下文(通常由表单面板提供)。

作为一种快速修复,您可以在BoxComponent 中显示您的标签:

Ext.onReady(function() 
    var panel = new Ext.FormPanel(
        title: "HBox Panel",
        layout: 'hbox',
        width: 300,
        height: 200,
        renderTo: document.body,
        items: [
            xtype: 'box'
            ,html: '<label class="x-form-item-label" style="width: auto; margin: 0 5px;">'
                + 'Label 1:</label>'
            ,cls: 'x-form-item'
        ,
            xtype: "textfield"
        ,
            xtype: 'box'
            ,html: '<label class="x-form-item-label" style="width: auto; margin: 0 5px;">'
                + 'Label 2:</label>'
            ,cls: 'x-form-item'
        ,
            xtype: "textfield"
        ]
    );
);

当然,为自定义样式创建一个 CSS 类会更简洁,甚至可以从 BoxComponent 扩展一个新组件。

您也可以在父面板的initComponent 方法中推广此逻辑,从配置的字段fieldLabel 中为标签创建框组件(这样您还可以设置@987654329 的for 属性@标签,因为此时你会知道生成的字段组件的id)。

【讨论】:

【参考方案3】:

将布局类型改为表单,

Ext.onReady(function()
    var panel = new Ext.Panel(
       title:"HBox Panel",
       layout:'form',
       width:300,
       height:200,
       renderTo:document.body,
       items:[
                
                 xtype:"textfield",
                 fieldLabel:"Label1"
                ,
                
                 xtype:"textfield",
                 fieldLabel:"Label2"
                

             ]


       );
    );

【讨论】:

以上是关于无法查看我的 hbox 布局面板的 fieldLabel的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 6.0.2 使用 hbox 布局创建具有两个嵌套面板的面板

ExtJS 将面板添加到面板

中心水平和垂直方向的形式面板

如何使用setActiveItem进行卡片布局以根据单选按钮选择显示面板?

Extjs 4.1.1 HBox 布局未显示所有子项或项重叠

我们可以使用 animate() 更改面板的弹性吗