是否可以在Ext JS中将一个xtype附加到另一个xtype

时间:2012-09-18 05:33:56

标签: javascript extjs extjs3

有没有办法在单个中附加两个xtypes。我的意思是我有一个xtype作为文本字段而另一个作为按钮。 在这里,我给出了一个文本字段旁边的按钮的代码及其工作。 但现在我需要单一的文本字段和按钮。

   {
        layout: "column",
        anchor: "0",
        items: [{
            columnWidth: .5,
            layout: "form",
            items: {
                xtype: "textfield",
                name: "agent",
                fieldLabel: "Representant",
                anchor: "0"
            }
        },{
            columnWidth: .5,
            items: {
                xtype: 'button',
                text: 'Click me'
            }
        }]
    }

2 个答案:

答案 0 :(得分:1)

xtype或小部件

xtype是一种类的短构造函数。你可以在一个类中嵌套的内容取决于类。至于文本字段,您不能附加任何孩子。如果您想了解有关任何课程的更多信息,请查看API。基本上你可以像在问题中那样嵌套它们

满足您的需求

为了使这个非常干净,您可以扩展文本字段,使用triggerfield(这个已经有可以更改布局的按钮)或者编写插件然后可以附加到任何适当的字段。

评论答案

您可以尝试以下未经测试的代码!您也可以使用带有应用container布局的hbox,而不是复合字段。但这感觉更适合我。

{
    xtype: 'compositefield',
    labelWidth: 120
    items: [
        {
            xtype     : 'textfield',
            fieldLabel: 'Title',
            flex      : 1,
            ref       : '../myTextfieldRef' // set a selfreference to the ownerCt
        },
        {
            xtype     : 'button',
            iconCls   : 'icon-class-name',
            text      : 'My Button Text',
            width     : 20,
            ref       : '../myButtonRef', // set a selfreference to the ownerCt
            handler   : function(btn) {
                console.log(btn.ownerCt.myTextfieldRef.value);
            }
        }
    ]
}

答案 1 :(得分:1)

根据您的要求,正如sra所说,最好使用triggerfield(如果你有两个按钮,则使用twinTriggerField)。

要合并其他字段,您还可以查看compositeField