powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Построение дерева
6 сообщений из 6, страница 1 из 1
Построение дерева
    #37526390
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MySQL 5.5
дерево хранится как показано на рисунке
необходимо:
1) отобразить дерево на TreeView
Далее пользователь изменяет (добавляет, удаляет, перемещает) узлы на treeView,
жмет кнопку "сохранить"
необходимо
2) сохранить дерево в базе (исходя из содержимого treeView)

Пригодятся любые советы
...
Рейтинг: 0 / 0
Построение дерева
    #37526402
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие сложности в реализации?
...
Рейтинг: 0 / 0
Построение дерева
    #37526408
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

Классика жанра. Я работал в одной конторе, где иерархические штучки именно так выглядели.
Вообще-то, это - не очень хорошо. Лучше таки с айди и парент-айди.

2 ТС. Да всё очень просто. Ну, таки подумайте. :)
...
Рейтинг: 0 / 0
Построение дерева
    #37527565
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Построение дерева
    #37528298
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки подумал
вот что получилось по предварительным наброскам

Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
        /// <summary>
        /// принимает корень дерева и заполняет его дочерние элементы согласно таблице m_modulepage
        /// вспомогательная процедура для FillTreeViewModulePage
        /// </summary>
        /// <param name="thenode"></param>
        /// <param name="sess"></param>
        protected void filChildModulePage(TreeNode thenode, ISession sess, IList mn)
        {              
            DataTable dt = new DataTable("tbTmp");
            dt.Columns.Add("MenuName", typeof(string));
            dt.Columns.Add("ItemOrder", typeof(string));
            foreach (System.Object[] o in mn)
            {
                DataRow Row = dt.NewRow();
                Row["MenuName"] = o[0].ToString();
                Row["ItemOrder"] = o[1].ToString();
                dt.Rows.Add(Row);
            }
            DataView dv = new DataView(dt);
            dv.RowFilter = "[ItemOrder] LIKE '" + thenode.Value.ToString() + "%' ";  

            for (int i = 0; i < dv.Count; i++)
            {                            
                TreeNode tn = new TreeNode();
                tn.Text = dv[i][0].ToString();
                tn.Value = dv[i][1].ToString() + "-";
                thenode.ChildNodes.Add(tn);
                filChildModulePage(tn, sess,mn);
            }            
        }

        /// <summary>
        /// заполняет объект TreeView согласно содержимому таблицы m_modulepage
        /// </summary>
        /// <param name="tw"></param>
        /// <param name="sess"></param>
        protected void FillTreeViewModulePage(TreeView tw, ISession sess)
        {         
            StringBuilder sb = new StringBuilder();
            sb.Append(" select MenuName,ItemOrder from m_ModulePage ");
            sb.Append(" order by ItemOrder ");
            IList mn = sess.CreateSQLQuery(sb.ToString()).List();
              
                foreach (System.Object[] o in mn)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = o[0].ToString();
                    tn.Value = o[1].ToString() + "-";
                    tw.Nodes.Add(tn);
                }          

            // проходим по всем родителям и добавляем потомков
            foreach (TreeNode thenode in tw.Nodes)
            {
                 filChildModulePage(thenode,sess,mn);
            }               
        }


что-то мне подсказывает что перемудрил
...
Рейтинг: 0 / 0
Построение дерева
    #37528458
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот вам ссылка в помощь.
деревья.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Построение дерева
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]