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

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

??
Не совсем понятно.
Можешь кинуть код чтоб я долго не мучился))
...
Рейтинг: 0 / 0
02.08.2006, 13:35
    #33894517
OreL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView
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
02.08.2006, 14:51
    #33894833
bms
bms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView
Thanx!!!

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

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

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

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

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

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

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

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


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