从组件定义调用函数

时间:2013-09-11 09:18:23

标签: javascript extjs extjs4.2

只是一个简单的问题,在我们定义如下组件时,是否可以调用ExtJS函数来设置默认值?因为,当我在下面尝试时,该函数不会赋值。

{
  xtype: 'textfield',
  fieldLabel: 'DNR TYPE',
  name: 'DNR_TYPE,
  value: Ext.getCmp('dnr-type').getRawValue() 
  // here is the function that I want to call and assign the value
}

编辑:

亲爱的朋友们,我发现了与表单渲染相关的问题。应用程序启动时,表单使用默认值初始化。因此,字段值返回空。当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段。

现在,当用户从表单中选择一条记录时,是否有任何方法可以再次刷新/重新加载表单?

2 个答案:

答案 0 :(得分:0)

只要Ext.getCmp('dnr-type')。getRawValue()返回一个可能的字符串......

答案 1 :(得分:0)

您可以尝试的一个解决方案是:

{
  xtype: 'textfield',
  fieldLabel: 'DNR TYPE',
  name: 'DNR_TYPE,
  listeners: {
    beforerender: function() {
       this.setValue(Ext.getCmp('dnr-type').getRawValue());
    }
  }
}

如果Ext.getCmp('dnr-type').getRawValue()返回值,则会将其分配给textfield,否则如果为空字符串,则textfield将包含空白值,您将无法在textfield中查看值。

编辑:

  

当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段。

---->您可以更改select combo事件的文本字段值,如:

{
    xtype: 'combo'
    displayField: 'foo',
    valueField: 'bar',
    lsiteners: {
       select: function( combo, records) {
          var rec = records[0]; // records will contain selected records(1 or more)
          var textField = // get textfield using Ext.getCmp()
          textField.setValue(rec.get('modelName'));
       }
    }
}
  

现在,当用户从表单中选择一条记录时,是否有任何方法可以再次刷新/重新加载表单?

---->我不清楚这一点。如果你告诉我这个场景,我可以帮你解决这个问题