Tänkte använda en treeview som meny på en hemsida. Huvudkategori och en underkategorinivå. jag har löst det på så vis att jag har en XML fil som källa. så här: Nja.. det är inget alternativ i detta fallet... Lyfter upp tråden lite och hoppas på att någon har en smart lösning att dela med sig av... Hej, så här löste jag det.treeview-meny
Tyvärr hittar jag ingen bra sida som brskriver hur jag skall gå tillväga. Mina kategorier ligger i två tabeller. En tblHuvudkategori och en tblunderkategori. Där den sistnämda har en rellation till den första.
Tips på någon sida som förklarar hur jag på ett bra sätt matar denna information i treeview:n önskas.Sv: treeview-meny
<Projekt name="Test" id="9">
<produkt name="Skruvmejsel3" id="26" link="Product_info.aspx?produktid=26&_ingari=-1"/>
</Projekt>
sen får du binda trädet till dessa två taggar o sätta navigateurl till "link" (eller va du nu kallar det)
Sv:treeview-meny
Ingen annan som har ett bra förslag? Eller blir man tvungen att skriva en egen control för att lösa problemet?Sv: treeview-meny
Sv:treeview-meny
Dim dbConnString = System.Configuration.ConfigurationManager.AppSettings("DSN")
Private Const empQuery = "SELECT * from ChildTable"
Private Const deptQuery = "SELECT * FROM ParentTable"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
PopulateTreeView()
End If
End Sub
Public Sub PopulateTreeView()
Dim myDataSet As DataSet = GetData()
Dim parentRow As DataRow
For Each parentRow In myDataSet.Tables("ParentTable").Rows
Dim parentNode As TreeNode = New TreeNode(CType(parentRow("ParentName"), String))
parentNode.NavigateUrl = (CType(parentRow("ParentUrl"), String))
TreeView1.Nodes.Add(parentNode)
Dim childRow As DataRow
For Each childRow In parentRow.GetChildRows("Child")
Dim childNode As TreeNode = New TreeNode(CType(childRow("ChildName"), String))
parentNode.ChildNodes.Add(childNode)
childNode.NavigateUrl = (CType(childRow("ChildUrl"), String))
Next
Next
End Sub
Public Function GetData() As DataSet
Dim dbConn As OleDbConnection = New OleDbConnection(dbConnString)
Dim empDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(empQuery, dbConn)
Dim deptDataAdapter As OleDbDataAdapter = New OleDbDataAdapter(deptQuery, dbConn)
Dim myDataSet As DataSet = New DataSet()
empDataAdapter.Fill(myDataSet, "ChildTable")
deptDataAdapter.Fill(myDataSet, "ParentTable")
myDataSet.Relations.Add("Child", myDataSet.Tables("ParentTable").Columns("ParentId"), myDataSet.Tables("ChildTable").Columns("ParentId"))
Return myDataSet
End Function