powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать treeview через SiteMapDataSource1
13 сообщений из 13, страница 1 из 1
Как создать treeview через SiteMapDataSource1
    #37911323
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как создать treeview через SiteMapDataSource1 и соединить с базой данных ?
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37911624
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDMK,

То есть ты хочешь в базе создать таблицу и загружать ее в treeview в виде дерева?
если да то я тебе могу дать код как это реализовать + структуру таблицы для MS SQL
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37911777
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,

Да. всё так
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37911871
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDMK,

1 Таблица на SQL server
название таблицы Menu
поля
id - int, - ключевое поле
id_parent - int,
title - nvarchar(50)


2 страница разметки

<asp:TreeView ID="TreeView1" runat="server" Width="223px" OnTreeNodePopulate="TreeView1_TreeNodePopulate" NodeWrap="True" />
</asp:TreeView>

3 Код

Код: c#
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.
protected string conn = ConfigurationManager.ConnectionStrings["название подключения"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PopulateRootLevel();
            TreeView1.CollapseAll();
        }
    }

private void PopulateRootLevel()
    {
        SqlConnection objConn = new SqlConnection(conn);
        SqlCommand objCommand = new SqlCommand(@"select id,title,(select count(*) FROM Menu WHERE id_parent=sc.id) childnodecount FROM Menu sc where id_parent IS NULL", objConn);
        SqlDataAdapter da = new SqlDataAdapter(objCommand);
        DataTable dt = new DataTable();
        da.Fill(dt);
        PopulateNodes(dt, TreeView1.Nodes);
    }

private void PopulateNodes(DataTable dt, TreeNodeCollection nodes)
    {
        foreach (DataRow dr in dt.Rows)
        {
            TreeNode tn = new TreeNode();
            tn.Text = dr["title"].ToString();
            tn.Value = dr["id"].ToString();
            nodes.Add(tn);

            tn.PopulateOnDemand = ((int)(dr["childnodecount"]) > 0);
        }
    }

 private void PopulateSubLevel(int parentid, TreeNode parentNode)
    {
        SqlConnection objConn = new SqlConnection(conn);
        SqlCommand objCommand = new SqlCommand(@"select id,title,(select count(*) FROM Menu WHERE id_parent=sc.id) childnodecount FROM Menu sc where id_parent=@id_parent ORDER BY title DESC", objConn);
        objCommand.Parameters.Add("@id_parent", SqlDbType.Int).Value = parentid;
        SqlDataAdapter da = new SqlDataAdapter(objCommand);
        DataTable dt = new DataTable();
        da.Fill(dt);
        PopulateNodes(dt, parentNode.ChildNodes);
    }

 protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
    {
        PopulateSubLevel(Int32.Parse(e.Node.Value), e.Node);
    }



Этот код я использовал в своем проекте так что он рабочий
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37912963
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. А для asp:menu подойдет тоже самое?
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37912969
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDMK,

если немного переделать то можно и к Menu прикрутить
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37912978
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,

Там надо вместо Node Наверно использовать item ?
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913091
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xDMK,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    private void PopulateNodess(DataTable dt, MenuItemCollection menucoll)
        {
            foreach (DataRow dr in dt.Rows)
            {
                MenuItem tn = new MenuItem();
                tn.Text = dr["Name"].ToString();
                tn.Value = dr["Id"].ToString();
                menucoll.Add(tn);


                tn.Selected = ((int)(dr["childnodecount"]) > 0);
            }
        }


Я поменял на menu всё и вроде работает но последняя строчка в этом методе где tn.selected незнаю правильно ли?
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913094
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDMK,

Пока что я не пробовал использовать этот код к Menu, по этому точно сказать не могу правильно или нет. Хотя если все работает то правильно а если нет то не правильно
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913110
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,

А какой код вы используете?
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913128
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xDMK,

А какие события чтобы работало меню при наведении
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913256
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xDMK,

Я поэкспериментирую и отпишу
...
Рейтинг: 0 / 0
Как создать treeview через SiteMapDataSource1
    #37913480
xDMK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,

Я тоже посмотрю по экспериментирую. ВСё равно изучаю этот язык asp.net
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как создать treeview через SiteMapDataSource1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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