|
|
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
Необходимо сделать управление узлами в TreeView 1) Переместить узел вверх 2) Переместить узел вниз 3) Переместить узел в список родительских узлов 4) Переместить узел в список узлов вышестоящего узла Нашел для WinForms http://selo-blog.blogspot.com/2010/01/treeview-winforms.html Нужно для asp Может завалялся у кого код? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 15:43:51 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
Помогите решить более простую задачу. Имеется дерево TreeViewTmp из трех коренных элементов -А -B -C Пользователь выбирает узел B Нажимает кнопку "Вниз" Какой обработчик на кнопке нужно сделать что бы получить дерево на TreeViewTmp -А -С -B ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 09:20:50 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
MSSQLAndDotNet, Конечный код зависит от того, на основе каких данных вы строите дерево: выборка из БД, XML и т.п. Алгоритм у всех одинаковый: Элементы дерева должны быть отсортированы по чему-нибудь. В идеале должен быть индекс сортировки. Когда пользователь нажимает вниз, то нужно найти элемент с наименьшим индексом, который больше выбранного, и поменять индексы у выбранного и найденного элемента местами. Затем очистить и перестроить дерево. Все это повесить на клик кнопки "Вниз". Аналогично делается и перемещение вверх. Изменение родителя - просто меняешь родительскую ИД на другую (если нужно ноду кинуть в корень, то на ИД корня) и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 12:06:20 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
Гришков МаксимMSSQLAndDotNet, Конечный код зависит от того, на основе каких данных вы строите дерево: выборка из БД, XML и т.п. Алгоритм у всех одинаковый: Элементы дерева должны быть отсортированы по чему-нибудь. В идеале должен быть индекс сортировки. Когда пользователь нажимает вниз, то нужно найти элемент с наименьшим индексом, который больше выбранного, и поменять индексы у выбранного и найденного элемента местами. Затем очистить и перестроить дерево. Все это повесить на клик кнопки "Вниз". Аналогично делается и перемещение вверх. Изменение родителя - просто меняешь родительскую ИД на другую (если нужно ноду кинуть в корень, то на ИД корня) и все. Спасибо за совет! Дерево формируется так http://www.sql.ru/forum/actualthread.aspx?tid=895213 хочу сделать так, что бы пользователь изменил дерево как ему хочется, затем нажал кнопку "сохранить" и в БД сохранилось новое дерево. Индексы храню в поле nod.value Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 15:26:52 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
MSSQLAndDotNet, По какому пою вы планируете выполнять сортировку внутри ветки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 15:39:49 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
Гришков МаксимMSSQLAndDotNet, По какому пою вы планируете выполнять сортировку внутри ветки? Сортировки внутри ветки не будет, ибо пользователь изменяя расположение узлов сам будет определять их порядок. Изначально дерево формируется как показано в предыдущем посте(по ссылке, там есть ошибки, но идея ясна), изначальная сортировка по полю itemOrder. На данный момент я сделал перемещение узла дерева вверх и вниз. Идея такая: обходим все узлы дерева и индексируем их, индекс присваиваем полю node.value. Выделяем узел, нажимаем кнопку "вверх", далее обработчик такой Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 3) Переместить узел в список родительских узлов И вообще эта идея мне не очень нравится, одни заморочки, а не алгоритм)) Идея2: В node.value хранить з-е поля itemOrder(путь к узлу), и соответственно алгоритм управления узлами реализовывать используя это значение. Вот эта идея мне нравится! Осталось только реализовать ентот самый алгоритм)). PS Завтра выходные, времени много, вот как раз и займусь этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 22:29:12 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
MSSQLAndDotNetСортировки внутри ветки не будет, ибо пользователь изменяя расположение узлов сам будет определять их порядок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2011, 10:36:50 |
|
||
|
Управление узлами в TreeView
|
|||
|---|---|---|---|
|
#18+
Гришков МаксимСортировки внутри ветки не будет, ибо пользователь изменяя расположение узлов сам будет определять их порядок. Промахнулся кнопкой. Так вот, как я сейчас вижу, что у вас SelectedNode.Value - это и есть ключ, определяющий положение ветки в дереве. Если SelectedNode.Value - ID записи (PK таблицы) то это совсем не правильно. Догадайтесь почему... Если вы перебросите ветку выше или ниже, то изменится ИД => все записи из других таблиц, ссылающиеся на текущую, перестанут ссылаться на нее. Т.е. вам при этом придется еще и во всех дочерних таблицах обновлять внешние ключи... А это уже как минимум опасно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2011, 10:43:25 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=146&tid=1360271]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
287ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 591ms |

| 0 / 0 |
