23.04.2014, 06:51 | #1 |
Участник
|
Не срабатывает display-метод
Добрый день! У меня к вам странный вопрос...
Есть форма, на ней датасорс. На форме есть контролы, подвязанные к датасорсу. В таблице есть display-метод, который должен срабатывать при смене значения в некотором поле. На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает. НО (!) если контролы оформить не в грид, а отдельно - дисплей-метод не срабатывает автоматически! срабатывает только если щелкнуть в контрол с дисплей-методом.... в гриде, повторюсь, все работает... Подскажите, в чем дело? Последний раз редактировалось Vasiliusis; 23.04.2014 в 06:57. |
|
23.04.2014, 08:12 | #2 |
Участник
|
Дисплейка не кэшируется?
|
|
23.04.2014, 08:14 | #3 |
Участник
|
|
|
23.04.2014, 08:57 | #4 |
Участник
|
Цитата:
Последний раз редактировалось axm2014; 23.04.2014 в 08:59. |
|
23.04.2014, 12:53 | #5 |
Ищущий знания...
|
Цитата:
Сообщение от Vasiliusis
Добрый день! У меня к вам странный вопрос...
Есть форма, на ней датасорс. На форме есть контролы, подвязанные к датасорсу. В таблице есть display-метод, который должен срабатывать при смене значения в некотором поле. На форме есть грид. В гриде том есть контрол, через который меняется значение. И есть контрол, привязанный к дисплей-методу. В гриде все работает, все сменяется, дисплей метод отрабатывает. НО (!) если контролы оформить не в грид, а отдельно - дисплей-метод не срабатывает автоматически! срабатывает только если щелкнуть в контрол с дисплей-методом.... в гриде, повторюсь, все работает... Подскажите, в чем дело?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
23.04.2014, 13:24 | #6 |
Участник
|
Попробуйте закэшировать метод. Тем более, если он в таблице.
X++: public void init() { super(); this.cacheAddMethod(tableMethodStr(Table, displayMethod)); }
__________________
// no comments Последний раз редактировалось dech; 23.04.2014 в 13:27. |
|
23.04.2014, 14:00 | #7 |
Участник
|
|
|
23.04.2014, 15:03 | #8 |
Участник
|
А может быть дело не в том что вы активируете контрол, а в том что вы выходите при этом с грида. Потеря фокуса гридом инициирует сохранение введенных данных и именно тогда метод пересчитывается.
Если это так, то исправить ситуацию можно если после изменения значения в поле грида (метод modified соответствующего узла field на датасорсе) принудительно вызвать метод write датасорса. |
|