📄 defaultvb.aspx.vb
字号:
Imports System
Imports System.Xml
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Data.OleDb
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports Telerik.QuickStart
Imports Telerik.WebControls
'/ <summary>
'/ Summary description for _Default.
'/ </summary>
Namespace Telerik.TreeViewExamplesVBNET.ClientLoadOnDemandSql
Public Class DefaultVB
Inherits XhtmlPage
Protected WithEvents RadTree1 As Telerik.WebControls.RadTreeView
Protected LoadingMessagePos As RadioButtonList
Private Function GetNodeData(ByVal query As String) As DataSet
Dim dbCon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/TreeView/Data/Nodes.mdb"))
dbCon.Open()
Dim adapter As New OleDbDataAdapter(query, dbCon)
Dim ds As New DataSet()
adapter.Fill(ds)
dbCon.Close()
Return ds
End Function 'GetNodeData
Private Sub LoadRootNodes()
Dim ds As DataSet = GetNodeData("SELECT * FROM Nodes WHERE ParentId IS NULL")
Dim row As DataRow
For Each row In ds.Tables(0).Rows
Dim node As New RadTreeNode()
node.Text = CStr(row("Text"))
node.Value = Fix(row("Id")).ToString()
node.ID = Fix(row("Id")).ToString()
node.ExpandMode = ExpandMode.ServerSideCallBack
RadTree1.Nodes.Add(node)
Next row
End Sub 'LoadRootNodes
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
LoadRootNodes()
RadTree1.LoadingMessagePosition = LoadingMessagePosition.BeforeNodeText
RadTree1.LoadingMessageCssClass = "LoadingMessageBlue"
RadTree1.LoadingMessage = "(loading ..)"
End If
End Sub 'Page_Load
Private Sub RadTree1_NodeExpand(ByVal o As Object, ByVal e As Telerik.WebControls.RadTreeNodeEventArgs) Handles RadTree1.NodeExpand
Dim sql As String = "SELECT" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes.Id AS NodeId, Nodes.Text AS NodeText, COUNT(Children.Id) AS HasChildren" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "FROM " + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "LEFT JOIN" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes Children" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "ON" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes.Id = Children.ParentId" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "WHERE" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes.ParentId = {0}" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "GROUP BY" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + "Nodes.Id, Nodes.Text" + ControlChars.Cr + ControlChars.Lf + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab + ControlChars.Tab
sql = String.Format(sql, e.NodeClicked.ID)
Dim ds As DataSet = GetNodeData(sql)
Dim row As DataRow
For Each row In ds.Tables(0).Rows
Dim node As New RadTreeNode()
node.Text = CStr(row("NodeText"))
node.ID = Fix(row("NodeId")).ToString()
node.Image = "1.gif"
node.Target = "_new"
If Fix(row("HasChildren")) > 0 Then
node.ExpandMode = ExpandMode.ServerSideCallBack
End If
e.NodeClicked.Nodes.Add(node)
Next row
End Sub 'RadTree1_NodeExpand
Protected Sub LoadingMessagePositionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Select Case LoadingMessagePos.SelectedItem.Value
Case "Before"
RadTree1.LoadingMessagePosition = LoadingMessagePosition.BeforeNodeText
RadTree1.LoadingMessageCssClass = "LoadingMessageBlue"
RadTree1.LoadingMessage = "(loading ..)"
Case "After"
RadTree1.LoadingMessagePosition = LoadingMessagePosition.AfterNodeText
RadTree1.LoadingMessageCssClass = "LoadingMessageBlue"
RadTree1.LoadingMessage = "(loading ...)"
Case "Below"
RadTree1.LoadingMessagePosition = LoadingMessagePosition.BelowNodeText
RadTree1.LoadingMessageCssClass = "LoadingMessage"
RadTree1.LoadingMessage = "(loading ...)"
Case "None"
RadTree1.LoadingMessagePosition = LoadingMessagePosition.None
End Select
End Sub 'LoadingMessagePositionChanged
#Region "Web Form Designer generated code"
Protected Overrides Sub OnInit(ByVal e As EventArgs)
InitializeComponent()
MyBase.OnInit(e)
End Sub 'OnInit
'/ Required method for Designer support - do not modify
'/ the contents of this method with the code editor.
'/ </summary>
Private Sub InitializeComponent()
End Sub 'InitializeComponent
#End Region
End Class 'DefaultCS
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -