Я в значительной степени с Вами на этом человеке. Соглашения о присвоении имен, которые Вы использовали:
, В чем больше Вы нуждаетесь с тестового имени?
Вопреки ответ Ray я не думаю Тест , префикс необходим. Это - тестовый код, мы знаем это. Если необходимо сделать это для идентификации кода, то у Вас есть большие проблемы, , Ваш тестовый код не должен путаться с Вашим производственным кодом.
Что касается длины и использования подчеркивания, тестовый код , о ком заботится ад? Только Вы и Ваша команда будете видеть его, пока это читаемо, и ясно о том, что делает тест, продолжите!:)
Однако я все еще довольно плохо знаком с тестированием и блоггинг моих приключений с ним :)
"GridPanel столбцы привязаны к элементы формы FormPanel так, чтобы когда запись выбрана в GridPanel, все значения заполняется в форме ».
Как я понимаю из приведенной выше цитаты, событие rowclick
- это то, что фактически инициирует изменение вашей формы. Чтобы избежать опроса, это может быть место для прослушивания и, в конечном итоге, активировать ваше пользовательское событие изменения.
Если вы нашли время, чтобы прочитать source, вы увидите, что класс Ext.form.Field запускает это событие изменения только в функции onBlur
Вот уродливый прием, который я сделал для решения этой проблемы:
var current_id_value = '';
var check_changes = function(offset) {
offset = offset || 100;
var id_value = document.getElementById('id_field').value || '';
if ( id_value && ( id_value != current_id_value ) ) {
current_id_value = id_value;
change_iframe(id_value);
} else {
offset = offset + 50;
if ( offset > 2500 ) {
offset = 2500;
}
setTimeout(function() { check_changes(offset); }, offset);
}
};
var change_iframe = function(id_value) {
if ( id_value ) {
document.getElementById('upload_iframe').src = 'http://api/upload.php?id=' + id_value;
} else {
document.getElementById('upload_iframe').src = 'no_upload.html';
}
setTimeout(function() { check_changes(100); }, 1500);
};
Это некрасиво, но работает. Все боссы счастливы.