powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TreeView не раскрывает нужный узел
3 сообщений из 3, страница 1 из 1
TreeView не раскрывает нужный узел
    #33588456
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть форма на ASP2, на которой TreeView заполняется вручную:
TreeView1.Nodes.Clear() и потом GroupNode1.ChildNodes.Add(SubGroupNode1)
Все заполняется отлично и выводится. Но....

Я бы хотел раскрывать на форме ТОЛЬКО ТЕ УЗЛЫ TREEVIEW, ЧТО МНЕ НУЖНЫ, ибо а дерево здоровенное, так работать иначе просто невозможно...

Увы, двухдневые эксперименты с PopulateNodeFromClient, PopulateOnDemand, EnableClienScript (да и со всеми прочими флагами TreeView) ни к какому успеху НЕ ПРИВЕЛИ - при выводе на форму раскрывается или только корневой узел, или сразу все по ExpandAll (который я в конце концов дописал внизу своей проги). Никакие манипуляции с CurrNode в тексте проги не привели к показе на форме раскрытым ИМЕННО НУЖНОГО МНЕ УЗЛА...

Кто-нидь сталкивался с такими вопросами? В чем тут фишка?
...
Рейтинг: 0 / 0
TreeView не раскрывает нужный узел
    #33589602
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Год назад делал что-то подобное, проблем не было. Если хочешь, вот пример кода на VB. Есть более новый, но он на C#.
http://aspnetmania.com/Code/Code/121.html
...
Рейтинг: 0 / 0
TreeView не раскрывает нужный узел
    #33592644
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, твой текст смотрю, пока не могу понять, как ты это делаешь. Я заполняю дерево просто - безо всякой рекурсии:
Код: 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.
Private Sub LoadTreeFromXml()
        TreeView1.Nodes.Clear()
        Dim RootNode As New TreeNode
        RootNode.Text = XmlDataSource1.GetXmlDocument.DocumentElement.Name
        RootNode.Value = XmlDataSource1.GetXmlDocument.DocumentElement.Name
        RootNode.SelectAction = TreeNodeSelectAction.SelectExpand
        TreeView1.Nodes.Add(RootNode)
        ''
        Dim MyXML As System.Xml.XmlDocument = XmlDataSource1.GetXmlDocument
        Dim GroupList As System.Xml.XmlNodeList = MyXML.GetElementsByTagName("MyGroup")
        Dim i As Integer, j As Integer
        For i =  0  To GroupList.Count -  1 
            Dim OneXmlNode As System.Xml.XmlElement = GroupList(i)
            Dim GroupNode1 As New TreeNode
            GroupNode1.Text = GroupList(i).Attributes("MyGroupName").Value
            GroupNode1.Value = GroupList(i).Attributes("GroupLocation").Value
            GroupNode1.SelectAction = TreeNodeSelectAction.SelectExpand

            Dim SubGroupList As System.Xml.XmlNodeList = OneXmlNode.GetElementsByTagName("MySubGroup")

            For j =  0  To SubGroupList.Count -  1 
                If SubGroupList(j).Attributes.Count =  2  Then
                    Dim SubGroupNode1 As New TreeNode
                    ''добавляем только непустые узлы - на чем падает DataBind
                    SubGroupNode1.Text = SubGroupList(j).Attributes("MySubGroupName").Value
                    SubGroupNode1.Value = SubGroupList(j).Attributes("SubGroupLocation").Value
                    SubGroupNode1.SelectAction = TreeNodeSelectAction.SelectExpand
                    GroupNode1.ChildNodes.Add(SubGroupNode1)
                End If
            Next
            RootNode.ChildNodes.Add(GroupNode1)
        Next
    End Sub
Но пока так и не смог добится, чтобы нужный НОД раскрывался - так и вывожу все дерево на двадцать экранов. Ну попробую еще твой текст посмотреть...

Еще один удивительный глюк нашел... В событии смены текущего узла нет нового выбранного узла... Причем это как-то чудно получается... Работает-работает, потом - хопа пошло выпадать в это точку ошибки... Потом опять, хопа - и восстановилось...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged
        ''текущий узел запомнили в полях формы
        If Not (sender.SelectedNode Is Nothing) Then
            TextBox1.Text = sender.SelectedNode.text
            TextBox3.Text = sender.SelectedNode.valuepath
            TextBox4.Text = ""
        Else
            TextBox4.Text = "Ошибка, В событии изменения узла нет нового выбранного узла"
            ''ТУТ КАКОЙ-ТО ГЛЮК - СОБЫТИЕ ИЗМЕНЕНИЯ НОДА, А ВЫБРАННОГО НОДА НЕТ
            TextBox1.Text = TreeView1.Nodes( 0 ).Text
            TextBox3.Text = TreeView1.Nodes( 0 ).ValuePath
        End If
    End Sub
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TreeView не раскрывает нужный узел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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