Dim Table As New Data.DataTable

Dim C1 As New Data.DataColumn("C1", GetType(String))

Dim C2 As New Data.DataColumn("C2", GetType(String))

Dim C3 As New Data.DataColumn("C3", GetType(String))

Table.Columns.Add(C1)

Table.Columns.Add(C2)

Table.Columns.Add(C3)

For i As Integer = 0 To 10

Dim r As Data.DataRow = Table.NewRow

r("C1") = "A"

If i Mod 2 Then

r("C2") = "A.1"

Else

r("C2") = "A.2"

End If

If i Mod 3 Then

r("C3") = "A.3"

Else

r("C3") = "A.4"

End If

Table.Rows.Add(r)

Next

For i As Integer = 0 To 10

Dim r As Data.DataRow = Table.NewRow

r("C1") = "B"

If i Mod 2 Then

r("C2") = "B.1"

Else

r("C2") = "B.2"

End If

If i Mod 3 Then

r("C3") = "B.3"

Else

r("C3") = "B.4"

End If

Table.Rows.Add(r)

Next

GridView1.DataSource = Table

GridView1.DataBind()

Dim a, b, c As TreeNode

Dim strA, strB, strC As String

strA = ""

strB = ""

strC = ""

Dim dr() As Data.DataRow = Table.Select("", "C1,C2,C3")

For i As Integer = 0 To dr.Length - 1

If strA <> dr(i)("C1") Then

strA = dr(i)("C1")

a = New TreeNode(strA)

TreeView1.Nodes.Add(a)

End If

If strB <> dr(i)("C2") Then

strB = dr(i)("C2")

b = New TreeNode(strB)

a.ChildNodes.Add(b)

End If

If strC <> dr(i)("C3") Then

strC = dr(i)("C3")

c = New TreeNode(strC)

b.ChildNodes.Add(c)

End If

Next

این قراره جدولی مثل زیر رو به treeview تبدیل کنه .

C1 C2 C3
A A.2 A.4
A A.1 A.3
A A.2 A.3
A A.1 A.4
A A.2 A.3
A A.1 A.3
A A.2 A.4
A A.1 A.3
A A.2 A.3
A A.1 A.4
A A.2 A.3
B B.2 B.4
B B.1 B.3
B B.2 B.3
B B.1 B.4
B B.2 B.3
B B.1 B.3
B B.2 B.4
B B.1 B.3
B B.2 B.3
B B.1 B.4
B B.2 B.3

این جدول در برنامه اصلی از 3 تا جدول میاد که آخر سرش برای اینکه همه چیز پشت سر هم باشد GroupBy C1,C2,C3 و Order by  شده است . الان با یک حلقه نمایش می ده ولی نمی دونم چقدر روش خوبی است ! در دات نت 2 برای treeview.datasource  یه چیزهایی است که باید تست کرد . یک راه هم استفاده از 3 تا حلقه و چند صد بار گرفتن اطلاعات از database  است !

Gravatarکیوان نیّریWwW
چهارشنبه ساعت 19:19 , 11/5/1385
دو تا راه:
1 داده های گرانقدر رو بفرستین تو یه XML بعد با یه XSL منتقلشون کنین به یه ساختار جدید که این جدیده باشه بعدش با XmlDataSource اینا رو Bind کنین به TreeView.
2 یه کلاس بنویسین که Recursive تعریف بشه و خودش رو به عنوان Child داشته باشه بعد با استفاده از Reflection جنس Node ها رو پیدا کنین و اندیس بدین بهشون. آخر سر هم این کلاس رو با استفاده از ObjectDataSource بیارین Bind کنین به جناب TreeView. اینم می شه انتهای OOP برای این!
نام :   
ايميل :      اين سايت از سيستم گراواتر استفاده می کند ، اگر در گراواتر دارای کد کاربری هستيد می توانيد از آن آدرس ايميل استفاده کنيد.  
وب سايت :   
ديدگاه :   
عدد زير را وارد کنيد :
  


  پيام شما بعد از بازبينی افزوده خواهد شد.