powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Поиск по TreeView и выделение найденного элмента..
7 сообщений из 7, страница 1 из 1
Поиск по TreeView и выделение найденного элмента..
    #39508800
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть простая страница с TreeView:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<body>
    <form id="form1" runat="server">
    
        
        <asp:TextBox ID="TextBox1" runat="server" Width="400px"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Search" />

        


        <div>
            <asp:TreeView ID="TreeView1" ExpandDepth="0" PopulateNodesFromClient="true" ShowLines="true" ShowExpandCollapse="true" runat="server"/>
        </div>

    </form>
</body>



И её заполнние в коде:

Код: 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.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            PopulateRootLevel()
        End If
    End Sub
    Private Sub PopulateRootLevel()
        Dim objConn As New SqlConnection("server=server;Trusted_Connection=true;DATABASE=db")
        Dim objCommand As New SqlCommand("select id,title,(select count(*) FROM SampleCategories " _
          & "WHERE parentid=sc.id) childnodecount FROM SampleCategories sc where parentID IS NULL", _
          objConn)

        Dim da As New SqlDataAdapter(objCommand)
        Dim dt As New DataTable()
        da.Fill(dt)

        PopulateNodes(dt, TreeView1.Nodes)
    End Sub

    Private Sub PopulateNodes(ByVal dt As DataTable, ByVal nodes As TreeNodeCollection)

        For Each dr As DataRow In dt.Rows
            Dim tn As New TreeNode()
            tn.Text = dr("title").ToString()
            tn.Value = dr("id").ToString()
            If tn.Text.Contains("Account") Then
                tn.ImageUrl = "~\img\status_Success.png"
            End If

            nodes.Add(tn)

            'If node has child nodes, then enable on-demand populating
            tn.PopulateOnDemand = (CInt(dr("childnodecount")) > 0)
        Next

    End Sub

    Private Sub PopulateSubLevel(ByVal parentid As String, _
  ByVal parentNode As TreeNode)
        Dim objConn As New SqlConnection("server=server;Trusted_Connection=true;DATABASE=db")
        Dim objCommand As New SqlCommand("select id,title,(select count(*) FROM SampleCategories " _
          & "WHERE parentid=sc.id) childnodecount FROM SampleCategories sc where parentID=@parentID", _
          objConn)
        objCommand.Parameters.Add("@parentID", SqlDbType.VarChar).Value = parentid

        Dim da As New SqlDataAdapter(objCommand)
        Dim dt As New DataTable()
        da.Fill(dt)
        PopulateNodes(dt, parentNode.ChildNodes)
    End Sub

    Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
        PopulateSubLevel(CStr(e.Node.Value), e.Node)
    End Sub


End Class



Вопрос - как при помощи ведённого в TextBox1 значения найти все элементы в TreeView и выделить их?
Гугление не помогло, что то как то тяжко с результатами..
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509385
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Santa89,
а выделение планируется осуществить в коде или скриптом?
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509393
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В коде
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509394
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем надо таким образом - при первом клике на кнопку нашел какой то элемент дерева - выделил только его. При следующем клике на кнопку - нашел следующий элемент, выделил его, с предыдущего выделение снял, итд..
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509407
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Santa89,
что мешает при заполнении дерева сравнить заливаемые данные с TexBox и совершить некое действие?
далее запомнить id выделенного элемента в переменной,
начать сравнение с id старше чем в переменной.
Узлы наверно тоже нужно будет разворачивать.
Это на вскидку без глубокого погружения в проблему
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509781
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-sphere,

так ведь дерево заливается один раз при загрузке страницы
...
Рейтинг: 0 / 0
Поиск по TreeView и выделение найденного элмента..
    #39509817
it-sphere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Santa89,
не может такого быть.
Вы его можете заливать по любому известному и произошедшему событию.
Например чих пользователя :)
Выносите ваше дерево например сюда
Код: vbnet
1.
2.
3.
Protected Sub TreeViewFull()

    End Sub



в

Код: vbnet
1.
2.
3.
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Call TreeViewFull()
end sub



Тут юзверь чихнул
Код: vbnet
1.
Call TreeViewFull()
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Поиск по TreeView и выделение найденного элмента..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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