在Extjs 4.2中为什么setValue()不更新文本字段?

时间:2013-12-12 16:39:00

标签: extjs

以下代码似乎更改了文本字段值,因为AFTER警报会将值显示为已更改。

但是当你查看表单中的文本字段时,它是空白的???

var selectedItem = JSON.parse(CommonUtil.getSelectedRows(this.getSettingGrid()))[0];
alert("BEFORE: " + this.getSettingVcenter().queryById('txtName').getValue());
this.getSettingVcenter().queryById('txtName').setValue(selectedItem.name);
alert("AFTER: " + this.getSettingVcenter().queryById('txtName').getValue());

2 个答案:

答案 0 :(得分:1)

我能想到的唯一原因是,您可能不会修改实际的文本字段,而是修改对象的副本或其他内容。

要在Ext中获取组件,您应该使用:

var myTextField = Ext.ComponentQuery.query('textfield[itemId=someId]')[0];

myTextField.setValue("newValue");  //This is guaranteed to work

也可以使用:

console.log(yourObject); //this is to see the xtype of what your are modyfing the value, is it really the textfield?`

http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.ComponentQuery-method-query

答案 1 :(得分:0)

在设置值后使用setter方法setVisible(true)使文本字段可见,使其显示。我尝试使用mytextField.hidden=false;但是在后期工作中并没有起作用。