【问题标题】:Calling a function from component definition从组件定义中调用函数
【发布时间】:2013-09-11 09:18:22
【问题描述】:

只是一个简单的问题,当我们定义像下面这样的组件时,是否可以调用 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
}

编辑:

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

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

【问题讨论】:

  • 为什么不试试看它是否有效?
  • 我试过了,不行!我想知道我做错了什么。
  • 您需要组合一个有效的测试用例。您说的是在您发布的任何地方都没有引用的代码。
  • @EvanTrimboli 我发现了问题。在用户从组合框中选择记录之前呈现的表单面板。因此,该值未分配该字段。有没有刷新/重新加载表单的方法?

标签: javascript extjs extjs4.2


【解决方案1】:

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

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

如果Ext.getCmp('dnr-type').getRawValue()返回值,它将分配给文本字段,否则如果它是空白字符串,则文本字段将包含空白值,您将不会在文本字段中看到值。

编辑:

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

---->您可以在comboselect 事件上更改文本字段的值,例如:

{
    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'));
       }
    }
}

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

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

【讨论】:

  • 我编辑了这个问题,如果您不介意,请检查一下吗?
  • 亲爱的 Nandkumar,我真的很讨厌这个项目,因为他们不知道自己想要什么。该应用程序有 3 张卡片布局。当用户开始该过程时,从第一张卡逐步填写必要的信息。在流程结束时,在最后一张卡片布局中,我应该显示他们所做的摘要。最后一张卡片布局中出现的问题,因为有另一种形式来显示选定的记录。
  • 我能理解。这就是为什么需要适当的架构的原因,我正在经历同样的事情,但我喜欢我的项目和变化,因为它对我来说从不忙碌。 :) 顺便说一句,如果您有record,您可以使用form.loadRecord(record) 直接将记录分配给表单,前提是字段的name 应该是记录中的字段名称。
  • 另见my answerform.loadRecord(record) 演示
【解决方案2】:

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

【讨论】:

  • 而不是 getCmp 使用 .getForm().findField('dnr-type').getRawValue();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-05
  • 2019-06-07
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多