2013-12-12 2 views
0

Следующий код, похоже, изменяет значение текстового поля, потому что предупреждение AFTER показывает значение как измененное.В Extjs 4.2 почему setValue() не обновляет текстовое поле?

Но когда вы смотрите на текстовое поле в форме, оно пустое ???

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()); 
+0

Что это значит.getSettingVcenter() return? –

ответ

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

0

Создание текстового поля видимым с помощью метода сеттера setVisible(true) после настройки значения значение, показало его. Я пробовал использовать mytextField.hidden=false; но не работал в afterrender.

+0

Похоже, что [ответ подобный вашему] (http://stackoverflow.com/a/20550509/2343633) был опубликован несколько месяцев назад, но никогда не был исключен. Ваш ответ отличается? – rbatt

Смежные вопросы