Implementation of tree chart in ASP.NET

xiaoxiao2021-03-06  113

From: DOTNET Chinese Technology Network

The tree map is used to display data that is tissue according to the tree structure, which is widely used, such as file systems in the computer (resource manager in Windows), corporate or company constituting structures. We know that Tool TreeView with VB, PB, Delphi and other tools under Windows, which can easily develop tree charts using the TreeView control. However, it is not so easy to implement a tree chart on the web page. Now use Microsoft's Internet Explorer WebControls provided in ASP.NET. It makes the tree map on the web and is as convenient to Windows, and even the same function is powerful. More flexible. This article describes how to develop tree graphs with Internet Explorer WebControls. Because the tree diagram structure is more complicated, it is often used to start with it. The author combined with the specific instance of the application manager that has just been prepared to use ASP.NET, explain how to connect Internet Explorer WebControls in ASP.NET to connect to the database, and implement the data division any multi-layer display, conveniently Increase, modify, delete, and move. The author hopes that by the elaboration of this example, the author has achieved the effect of throwing bricks, and communicating with all the colleagues and progress together. Internet Explorer WebControls is not in the standard Server Control in VS.NET, downloaded to Microsoft's site, download address is: http://msdn.microsoft.com/downloads/samples/internet/Default.asp? URL = / Downloads / when samples / Internet / ASP_DOT_NET_ServerControls / WebControls / default.asp download for the first time after installation, you want to right-click the Toolbox Customize Toolbox ... after finding Micosoft.Web.UI.WebControls.Treeview → .NET Framework Components in check, so Treeview control It appears in the toolbox. First, the establishment of the tree is: Create a database, design the tree graph information table Tree_info, including NodeID, ParentID, NodeName, Adderss, Icon field, and other fields depending on the actual business, the node name NodeName will be in the node of the tree control The NodeID field saves the unique identification number of the node, and the ParentId represents the parent node number of the current node, the identification number consists of a "linked list", which records the structure of the node on the tree. Design a web form to place the TreeView control.

Private sub createDataSet () 'Establishing a data set

Dim myconn as new sqlConnection ()

DIM Mycmd As New Sqlcommand ("Select Nodeid, Nodename, Parentid, Address, Icon from Tree_info", MyConn

DIM MyDataAdapter as new SqldataAdapter ()

MyConn.connectionstring = Application ("ConnectString")

Mycmd.commandtext = ""

Mycmd.connection = myconn

MyDataAdapter.selectCommand = mycmd

MyDataAdapter.Fill (DS, "Tree")

End Sub

The basic idea of ​​building a tree is: Remissive call from the root node display Sub Tree Private Sub Page_Load (Byval E as System.EventArgs) Handles MyBase.10Ad

CreateDataSet ()

Intitree (TreeView1.nodes, 0)

End Sub

Private subnetode (byref nds as treenodecollection, byval parentid as integer)

DIM DV AS New DataView ()

DIM DRV AS DATAROWVIEW

DIM TMPND As TREENODE

DIM INTID AS INTEGER

DV.TABLE = DS.TABLES ("Tree")

Dv.rowfilter = "ParentID = '" & ParentID & "'"

For Each DRV in DV

TMPND = New Treenode ()

Strid = DRV ("Node_ID")

TMPND.ID = Strid

TMPND.TEXT = DRV ("Node_name")

TMPND.IMAGEURL = DRV ("icon"). TOSTRING

Nds.add (tmpnd)

Intitree (nds (nds.count - 1) .NODES, INTID)

NEXT

End Sub

Second, increase, delete the tree node is simply added, deleted, and modify the node on TreeView, and modify the NODD, REMOVE, etc. The difference, the VS6.0 is a big collection, and the vs.net is a nodes property under each Node in the hierarchy. Increase, delete, modify the tree node, which is very different from VS6.0, especially when deleting.

Private Sub Butadd_Click (Byval e as system.Eventargs) handles butadd.click 'adds a child node in the selected node

DIM TMPND As New Treenode (), NDSEL As Treenode

Tmpnd.id = getNewID ()

Ndsel = TreeView1.GetnodeFromindex (TreeView1.SelectedNodeIndex) selected node

TMPND.TEXT = "New Node"

NDSEL.NODES.ADD (TMPND)

Dim Myrow As DataRow

Myrow = DS.TABLES ("Tree"). Newrow ()

Myrow ("node_name") = tmpnd.id

Myrow ("node_descript") = "New Node" & Tmpnd.id & "_" & ndsel.id

Myrow ("parent_name") = ndsel.id

DS.TABLES ("Tree"). Rows.Add (MyRow)

End Sub

Private Sub Butdele_Click (Byval E AS Object, Byval E AS System.EventArgs) Handles Butdele.Click 'Delete Selected Nodes

DIM IDX as string = TreeView1.SelectedNodeIndex () getNDCOL (IDX) .remove (TreeView1.GetnodeFromIndex (IDX))

DIM DV AS New DataView (), Recno As INTEGER

DV.TABLE = DS.TABLES ("Tree")

DV.rowfilter = "nodeid =" & ndid

Dv.delete (0)

End Sub

Private function getndcol (byval idx as string) as TreenodeCollection

'Get the nodes collection of the parent node of the selected node

DIM CNT AS INTEGER, I as Integer

DIM TMPNDS as TreenodeCollection

DIM IDXS () AS STRING

Idxs = split (idx, ".")

CNT = ubound (idxs)

IF CNT = 0 THEN

TMPNDS = TreeView1.nodes

Else

Tmpnds = TreeView1.Nodes (cint)). Nodes

For i = 1 to CNT - 1

Tmpnds = Tmpnds (CINT (IDXS (I))). Nodes

NEXT

END IF

Return TMPNDS

END FUNCTION

Third, modify, the mobile tree node Since the server control does not support the mouse drag event, it is not like the Windows program to be dragged by dragging the moving node, here is the way in which the parent node is selected. Mobile is achieved by deleting in the original location, the new location is implemented, pay attention to save the node information before deleting.

Private Sub TreeView1_selected Indexchange (Byval e as microsoft.web.ui.webcontrols.treeviewselecteventAndargs) Handles TreeView1.SelectedIndexchange

DIM DV AS New DataView ()

DV.TABLE = DS.TABLES ("Tree")

DIM TMPND As Treenode = TREENDSEL (E.OLDNODE), TMPNDS AS TREENODECOLLECTION

DV.ROWFILTER = "nodeid =" & tmpnd.id

DV (0) ("node_descript") = me.textbox1.text

DV (0) ("Address") = me.textbox2.text

DV (0) ("Target") = me.textbox3.text

DV (0) ("icon") = me.textbox4.text

IF DV (0) ("Parentid"). Tostring <> me.dropdownload1.SelectedItem.Value Then

'Mobile node

DV (0) ("parent_name") = me.dropdownlist1.selectedItem.Value

If me.dropdownloadlist1.selectedItem.Value = "root" then

TMPNDS = TreeView1.nodes

Else

TMPNDS = fromidtonode (me.dropdownlist1.selecteditem.value, treai, treeview1.nodes) .nodes' new parent node Node Collection Endes

Getndcol (E.OLDNODE) ​​.Remove (TMPND)

Tmpnds.Add (TMPND)

END IF

TMPND.TEXT = Me.TextBox1.text

TMPND.ImageURL = Me.TextBox4.text

TMPND = TreeView1.GetNodeFromindex (TreeView1.SelectedNodeInde)

DV.ROWFILTER = "nodeid =" & tmpnd.id

Me.TextBox1.text = DV (0) ("nodename"). Tostring

Me.TextBox2.text = DV (0) ("Address"). Tostring

Me.TextBox3.Text = DV (0) ("Target"). Tostring

Me.TextBox4.text = DV (0) ("icon"). Tostring

End Sub

Private function fromidtonode (Byval NDS as Treenodecollection) As Treenode

'Find nodes by keyword

DIM I as integer

DIM TMPND As Treenode, TMPND1 As Treenode

For Each Tmpnd In Nds

IF tmpnd.id = ID THEN

Return TMPND

EXIT FUNCTION

END IF

TMPND1 = fromidtonode (ID, tmpnd.nodes)

IF not (tmpnd1 is nothing) THEN

Return TMPND1

EXIT FUNCTION

END IF

NEXT

Return Nothing

END FUNCTION

Fourth, conclude

The basic method of tree display in ASP.NET is described, and how to modify the database data while maintaining (increasing, deleting, modifying, moving) on ​​the tree node. Due to the limited space limit, the author only introduces basic ideas and processes and key steps, and does not list the detailed source code, readers can improve themselves. You need to contact me if you need a detailed source code, this article is programs to be programs under VS.NET, SQLServer, Windows 2000, IIS5.0.

转载请注明原文地址:https://www.9cbs.com/read-98946.html

New Post(0)