Javascript 从组件定义调用函数
只是一个简单的问题,当我们定义下面这样的组件时,是否可以调用ExtJS函数来设置默认值?因为,当我在下面尝试时,函数没有赋值Javascript 从组件定义调用函数,javascript,extjs,extjs4.2,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 } 编
{
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
}
编辑:
亲爱的朋友,我发现了与表单渲染相关的问题。应用程序启动时,表单将使用默认值初始化。因此,字段值返回为空。当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段
现在,当用户从表单中选择一条记录时,是否有任何方法可以再次刷新/重新加载表单?只要Ext.getCmp('dnr-type')。getRawValue()返回一个字符串,这是可能的…您可以尝试的一个解决方案是:
{
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中看到值
编辑:
当用户从组合框中选择一条记录时,我应该将该值分配给相关的文本字段
---->您可以更改组合的事件的选择上的textfield值,如:
{
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'));
}
}
}
现在,当用户从表单中选择记录时,是否有任何方法可以再次刷新/重新加载表单
---->我对此不清楚。如果你告诉我这个场景,也许我可以帮你做这件事为什么不试试看它是否管用?我试过了,它不管用!我想知道我做错了什么。你需要准备一个有效的测试用例。您所说的代码在您发布的内容中没有被引用。@Evantimboli我发现了问题所在。在用户从组合框中选择记录之前呈现的窗体面板。因此,该值没有指定字段。是否有刷新/重新加载表单的方法?使用.getForm().findField('dnr-type').getRawValue()代替getCmp;我编辑了这个问题,如果你不介意的话,请你检查一下好吗?亲爱的Nandkumar,我真的很讨厌这个项目,因为他们不知道自己想要什么。该应用程序有3个卡布局。当用户启动流程时,从第一张卡片开始逐步填写必要的信息。在流程结束时,在最后一张卡片布局中,我应该显示他们所做的总结。最后一张卡片布局出现问题,因为有另一个表单显示选定的记录。我可以理解。这就是为什么适当的架构是必要的,我也经历了同样的过程,但我喜欢我的项目和变化,因为它对我来说从来都不繁忙。:)顺便说一句,如果您有记录
,您可以使用表单将记录直接分配给表单。loadRecord(record)
提供的字段的名称
应该是记录中的字段名称。另请参见表单.loadRecord(record)
演示