Как правильно использовать setValue для TextField? - PullRequest
3 голосов
/ 17 декабря 2011

У меня есть, кажется, простой вопрос, но я довольно озадачен. Я работаю над кодом пользовательского интерфейса на основе Ext.JS и хочу изменить значение некоторого текста внутри поля формы.

Это поле ext.js.TextField.

У меня есть такой код:

var foo = this.getForm().findField('myFooField');
console.log(foo);
foo.setValue("text different that is different from the default");

Если я запускаю этот код, «foo» определенно регистрируется в консоли, и это правильный объект, заполненный значениями, которые я ожидал. Однако вызов setValue, похоже, ничего не делает.

Я сделал несколько вызовов трассировки до и после setValue, чтобы убедиться, что он действительно работает, и все, кажется, происходит без проблем. Просто пользовательский интерфейс не отражает мои изменения. Я также пытался вызвать setRawValue, но без разницы.

Есть предложения? Очень ценится!

Ответы [ 3 ]

2 голосов
/ 14 ноября 2012

Если вы используете MVC, возможно, вы пытаетесь изменить значение в событии рендеринга окна, для текстовых полей заданное значение работает только для события afterRender.

1 голос
/ 18 декабря 2011

Я не уверен, почему ваш код не работает.Проверьте, работает ли приведенный ниже код.

Ext.getCmp('myFooField').setValue("text different that is different from the default");

Даже если это не сработает, возможно, у вас неправильный код.

1 голос
/ 17 декабря 2011

Ваш код выглядит правильно, однако я обычно использую такую ​​функцию

Ext.override(Ext.Container, {
setValue: function(c, v) {this.findById(c).setValue(v);},
getValue: function(c) {return this.findById(c).getValue();}
}); 
win.setValue('myFooField', 'Some text');  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...