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

ale*_*lex 2 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
        }],
    }]
});
Run Code Online (Sandbox Code Playgroud)

Mch*_*chl 7

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

resultsPanel.query('textfield[name="intIP"]')[0].setValue('New value')
Run Code Online (Sandbox Code Playgroud)

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


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

resultsPanel.find('name','intP')[0].setValue('New value')
Run Code Online (Sandbox Code Playgroud)

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