|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
Добрый день. Большой набор данных нужно загнать в TreeView (common controls 6.0 (sp 6)). В результате, при заполнении TreeView приходится долго ждать. Для более удобной работы с TreeView вижу два пути решения проблемы. 1. Заменить данный контрол TreeView на другой, поддерживающий свойство PopulateOnDemand (заполнение по запросу). 2 Контрол «common controls 6.0 (sp 6)» заполнять выборочно, посредством добавления узлов в узел-контейнер при нажатие на плюсик разворачивающий данный контейнер. Но что то не могу найти событие «нажатие на плюсик». Подскажите. Либо какой то иной контрол TreeView. Не «common controls 6.0 (sp 6)» а с поддержкой заполнения по запросу. Либо как зовется событие в «common controls 6.0 (sp 6)» возникающее при нажатие на плюсик. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 10:23 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
Все разобрался ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 11:10 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
зовется событие в «common controls 6.0 (sp 6)» возникающее при нажатие на плюсик. .expand ну так, может не до конца разобрался)) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 20:12 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
Serg197311, давненько я не работал с этим контролом... Заполнение идёт либо на событие ЛКМ, либо на нажатие определённых клавиш (стрелок, энтер и пр). Рассмотрим только клик мыши. На событие ЛКМ определяется область куда кликнул пользователь - лейбл, плюсик или ещё куда (так-то есть такая возможность)... Если в плюсик, то заполняешь новую ветвь и разворачиваешь. Да, нужно ещё не забыть нарисовать плюсики где должны быть скрытые ветви. Сделать это можно либо добавляя фейковую ноду (не забыть её потом убрать!), либо через API дать команду ноде отобразить плюсик (и так можно). Как-то так... Примеров готовых под рукой нет, уж извини. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 20:55 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
Городить этот огород стоит если много данных, ну или очень хочется. Работает шустро. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2020, 20:57 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
Заполнить дерево более чем просто. Можно тупо на каждом узле открывать рекордсет для вытаскивания его потомков. Если узлов много, в разы быстрее будет открыть один раз полный рекордсет и для очередного узла делать ему фильтр. Фокус в том, что тривью наглядно показывает иерархические связи, но особенно удобно и эффективно оно будет если: * Для КАЖДОГО узла справа от тривью выводить форму-карточку текущего узла (передергивая вложенную субформу) * На этой карточке иметь нормальные редактируемые поля для свойств поля и вложенный грид для ввода дочерних узлов Тогда можно все дерево можно заполнить не выходя за пределы одной формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2020, 23:24 |
|
TreeView. Заполнять ноды по запросу.
|
|||
---|---|---|---|
#18+
А кстати что значит - большой объем данных? У меня примерно 7000 поз - разворачивается за 3 сек ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 06:42 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1610092]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 473ms |
0 / 0 |