|
|
#8 |
|
Участник
|
Цитата:
Сообщение от Pustik
в зависимости от того заполнено оно или нет, управляли контролом. Что-то типа :
X++: edit ItemName editItemId(boolean _set,InventTable _data, ItemName _val) { ItemName _ret = _val; if (_data.ItemName) InventTable_NameAlias.enabled(false); else InventTable_NameAlias.enabled(true); return _ret; } ![]() edit-display-методы дергаются на формах подчас до 6-8 раз в секунду (это легко проверяется), причем при любой перерисовке формы. Изменение доступности контрола тоже ведет к частичной перерисовке, отчего снова могут дергаться display-edit-методы. Представляю, как весело должна работать форма, где хрендцать записей на гриде и несско десятков, а то и за сотню раз в секунду (!!) отрабатывает логика изменения доступности какого-нить контрола...Цитата:
Цитата:
PS. Заметьте, что управление доступностью bound-контрола либо табличного поля влияет на все записи в гриде (хотя в каждый момент активна лишь одна), в то время как display-edit-методы на гриде работают с каждой записью по отдельности. Допустим, в записях на гриде через одну то заполнено ItemName, то пусто. Тогда при отрисовке поля для первой записи приведенный edit-метод отключит доступность NameAlias (для всех записей на гриде), для второй - снова включит (для всех), для третей - опять выключит и т.д. И так форма будет дергаться, будто в конвульсиях, пока ее не закроешь (эффект может проявляться в большей или в меньшей степени в зависимости от производительности клиентской машины). Последний раз редактировалось gl00mie; 22.09.2011 в 21:18. Причина: PS |
|
|
|
| За это сообщение автора поблагодарили: Pustik (3), lev (3). | |
|
|
|