powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TreeView
12 сообщений из 12, страница 1 из 1
TreeView
    #33894209
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
Есть таблица Category и SubCategory(связаны по idCategory), в них добавляются данные. Можно ли динамически создать TreeView с помощью двух таблиц?
...
Рейтинг: 0 / 0
TreeView
    #33894278
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
TreeView
    #33894281
Фотография OreL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bmsЕсть таблица Category и SubCategory(связаны по idCategory), в них добавляются данные. Можно ли динамически создать TreeView с помощью двух таблиц?

ДА !
Недавно этим занимался !!!
Используй PopulateOnDemand.
...
Рейтинг: 0 / 0
TreeView
    #33894362
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
OreL
ДА !
Недавно этим занимался !!!
Используй PopulateOnDemand.

??
Не совсем понятно.
Можешь кинуть код чтоб я долго не мучился))
...
Рейтинг: 0 / 0
TreeView
    #33894517
Фотография OreL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bmsOreL
ДА !
Недавно этим занимался !!!
Используй PopulateOnDemand.

??
Не совсем понятно.
Можешь кинуть код чтоб я долго не мучился))

MSDN

Код: 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.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server">

  Sub PopulateNode(ByVal sender As Object, ByVal e As TreeNodeEventArgs)

    ' Call the appropriate method to populate a node at a particular level.
    Select Case e.Node.Depth

      Case  0 
        ' Populate the first-level nodes.
        PopulateCategories(e.Node)

      Case  1 
        ' Populate the second-level nodes.
        PopulateProducts(e.Node)

      Case Else
        ' Do nothing.

    End Select

  End Sub

  Sub PopulateCategories(ByVal node As TreeNode)

    ' Query for the product categories. These are the values
    ' for the second-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select CategoryID, CategoryName From Categories")

    ' Create the second-level nodes.
    If ResultSet.Tables.Count >  0  Then

      ' Iterate through and create a new node for each row in the query results.
      ' Notice that the query results are stored in the table of the DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables( 0 ).Rows

        ' Create the new node. Notice that the CategoryId is stored in the Value property 
        ' of the node. This will make querying for items in a specific category easier when
        ' the third-level nodes are created. 
        Dim NewNode As TreeNode = New TreeNode(row("CategoryName").ToString(), row("CategoryID").ToString())

        ' Set the PopulateOnDemand property to true so that the child nodes can be 
        ' dynamically populated.
        NewNode.PopulateOnDemand = True

        ' Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.Expand

        ' Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(NewNode)

      Next

    End If

  End Sub

  Sub PopulateProducts(ByVal node As TreeNode)

    ' Query for the products of the current category. These are the values
    ' for the third-level nodes.
    Dim ResultSet As DataSet = RunQuery("Select ProductName From Products Where CategoryID=" & node.Value)

    ' Create the third-level nodes.
    If ResultSet.Tables.Count >  0  Then

      ' Iterate through and create a new node for each row in the query results.
      ' Notice that the query results are stored in the table of the DataSet.
      Dim row As DataRow

      For Each row In ResultSet.Tables( 0 ).Rows

        ' Create the new node.
        Dim NewNode As TreeNode = New TreeNode(row("ProductName").ToString())

        ' Set the PopulateOnDemand property to false because these are leaf nodes and
        ' do not need to be populated.
        NewNode.PopulateOnDemand = False

        ' Set additional properties for the node.
        NewNode.SelectAction = TreeNodeSelectAction.None

        ' Add the new node to the ChildNodes collection of the parent node.
        node.ChildNodes.Add(NewNode)

      Next

    End If

  End Sub

  Function RunQuery(ByVal QueryString As String) As DataSet

    ' Declare the connection string. This example uses Microsoft SQL Server and connects to the
    ' Northwind sample database.
    Dim ConnectionString As String = "server=localhost;database=NorthWind;Integrated Security=SSPI"

    Dim DBConnection As SqlConnection = New SqlConnection(ConnectionString)
    Dim DBAdapter As SqlDataAdapter
    Dim ResultsDataSet As DataSet = New DataSet

    Try

      ' Run the query and create a DataSet.
      DBAdapter = New SqlDataAdapter(QueryString, DBConnection)
      DBAdapter.Fill(ResultsDataSet)

      ' Close the database connection.
      DBConnection.Close()

    Catch ex As Exception

      ' Close the database connection if it is still open.
      If DBConnection.State = ConnectionState.Open Then

        DBConnection.Close()

      End If

      Message.Text = "Unable to connect to the database."

    End Try

    Return ResultsDataSet

  End Function

</script>

<html>
  <body>
    <form runat="server">
    
      <h3>TreeView TreeNodePopulate Example</h3>
    
      <asp:TreeView id="LinksTreeView"
        Font-Name= "Arial"
        ForeColor="Blue"
        EnableClientScript="false" 
        OnTreeNodePopulate="PopulateNode"
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Text="Inventory" 
            SelectAction="Expand"  
            PopulateOnDemand="true"/>
        
        </Nodes>
        
      </asp:TreeView>
      
      <br><br>
      
      <asp:Label id="Message" runat="server"/>

    </form>
  </body>
</html>
...
Рейтинг: 0 / 0
TreeView
    #33894833
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
Thanx!!!

Но есть ешё одна проблема.
Я переделал пару сторок с того кода:
NewNode.SelectAction = TreeNodeSelectAction.Select
и в асп странице добавил OnSelectedNodeChanged="funk"

по нажатию на какой-нибудьэлемент вызываеться функция где мне надо узнать что выбрано.Как это сделать? Надо узнать value выбранного значения, а если выбран child элемент, то надо узнать ещё и value parent элемента(потому что value у parent и child элемента может совпадать). Помогите кто знает, плиз))
...
Рейтинг: 0 / 0
TreeView
    #33895232
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
Ладно задам вопрос проще:
Есть динамически создаваемый TreeView (заранее не известно сколько и какие элементы туда входят). Как узнать какой элемент выбран(value элемента и если можно позицию в дереве)?
...
Рейтинг: 0 / 0
TreeView
    #33895417
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
Сори за тупой вопрос

TreeView1.SelectedNode.Parent.Value;
TreeView1.SelectedNode.Value
...
Рейтинг: 0 / 0
TreeView
    #33898096
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, OreL, Вы писали:

OL> bmsOreL
OL>ДА !
OL>Недавно этим занимался !!!
OL>Используй PopulateOnDemand.

Где можно почитать подробную информацию по treeview?
Сейчас хорошие книги по асп.нету на английском только?
...
Рейтинг: 0 / 0
TreeView
    #33898842
Фотография OreL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixerЗдравствуйте, OreL, Вы писали:

OL> bmsOreL
OL>ДА !
OL>Недавно этим занимался !!!
OL>Используй PopulateOnDemand.

Где можно почитать подробную информацию по treeview?
Сейчас хорошие книги по асп.нету на английском только?

Я использую MSDN Library for Visual Studio 2005 в качестве справки.
Хорошие книги по asp.net к сожелению только на английском !
...
Рейтинг: 0 / 0
TreeView
    #33898885
bms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bms
Гость
Лучший источник данных для меня на сегодня интернет!
...
Рейтинг: 0 / 0
TreeView
    #33899029
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OreLЯ использую MSDN Library for Visual Studio 2005 в качестве справки.
Хорошие книги по asp.net к сожелению только на английском !Очень неплохая книжка есть изд-ва МС "Введение в ASP.NET 2.0". Но это если с 1-ым знаком, а с нуля тоже не видел.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / TreeView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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