如何在extJS面板中更改extJS文本域组件的值?

时间:2011-08-20 13:38:05

标签: extjs extjs4

我在这里有这么简单的问题,但找不到......无论如何,下面你可以看到代码。这是面板内有物品。 我想要的是改变文本字段的值,名称为'intIP',它在面板内部,即面板内部。 我怎样才能做到这一点?我找到了关于表单的信息(.getForm方法,但是面板没有这样的)

提前多多感谢

http://jobtask.h19.ru/ - 小组

var resultsPanel = Ext.create('Ext.panel.Panel', {
    title: title,
    renderTo: document.body,
    layout: {
        type: 'vbox',
        align: 'stretch',
    },
    items: [{
        title: 'Details',
        name: 'detPanel',
        items: [{
            name: 'intIP',
            fieldLabel: 'internal IP',
            xtype: 'textfield',
            readOnly: true
        }],
    }]
});

3 个答案:

答案 0 :(得分:7)

在ExtJS 4中,您应该能够使用Ext.Container.query()方法,当传递正确的选择器时,将返回与选择器匹配的子组件数组。

resultsPanel.query('textfield[name="intIP"]')[0].setValue('New value')

有关如何创建选择器的详细信息,请访问:http://localhost/ext-4.0.2/docs/index.html#/api/Ext.ComponentQuery


在ExtJS3中:每个Ext.Container都有一个find()方法,该方法可以是属性名称(namextypeitemId等)和值('intP''textfield''fieldId')。它将返回一个chlderen组件数组(在任何嵌套级别),其中property具有指示的值。如果在您的容器中只有一个字段的名称为'intP',那么您可以使用:

resultsPanel.find('name','intP')[0].setValue('New value')

在ExtJS3和ExtJS4中,如果您有更多具有相同名称的子组件,则使用其他唯一属性(如itemId)应该有所帮助。

答案 1 :(得分:2)

为文本框指定itemId并使用resultsPanel.getComponent('itemId').setValue('Value')

此处itemId将仅限于小组的范围,而不是可在全球范围内使用的id

您也可以使用 resultsPanel.query('#itemId')resultsPanel.down('#itemId')

检查最适合您的docs

答案 2 :(得分:0)

如果要将输入字段放入面板,请考虑使用Ext.form.Panel。表单面板有查找其输入组件的方法,如findField。