http://ryu666.cnblogs.com/archive/2005/12/15/294727.html
这有个例子,但是是C的,很多都不同,有人可以帮我把它翻译成VB的吗?谢谢了

解决方案 »

  1.   

    不会吧,ComponentArt是带VB例子的
      

  2.   

    WebForm1.aspx:<%@ Page Src="WebForm1.aspx.vb" AutoEventWireup="false" Inherits="WebForm1" %>
    <%@ Register TagPrefix="demos" TagName="Header" Src="~/common/page_fragments/header.ascx"%>
    <%@ Register TagPrefix="demos" TagName="Footer" Src="~/common/page_fragments/footer.ascx"%>
    <%@ Register TagPrefix="demos" TagName="About" Src="~/common/page_fragments/about.ascx"%>
    <%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="EN">
      <head>
        <title>AJAX File Explorer</title>
        <link href="../../../common/baseStyle.css" type="text/css" rel="stylesheet" />    
        <link href="treeStyle.css" type="text/css" rel="stylesheet" >
      </head>  <body>  
        <form id="Form1" method="post" runat="server">    <demos:header DemoName="AJAX File Explorer" id="pageHeader" SiteMapFile="treeviewDemos.xml" ProductLogo="logo_treeview.gif" runat="server"/>
        <div class="DemoArea">    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td width="320">
          <ComponentArt:TreeView id="TreeView1" Height="450" Width="250" 
            DragAndDropEnabled="false" 
            NodeEditingEnabled="false"
            KeyboardEnabled="true"
            CssClass="TreeView" 
            NodeCssClass="TreeNode" 
            SelectedNodeCssClass="SelectedTreeNode" 
            HoverNodeCssClass="HoverTreeNode"
            NodeEditCssClass="NodeEdit"
            LineImageWidth="19" 
            LineImageHeight="20"
            DefaultImageWidth="16" 
            DefaultImageHeight="16"
            ItemSpacing="0" 
            ImagesBaseUrl="images/"
            NodeLabelPadding="3"
            ParentNodeImageUrl="folder.gif" 
            ExpandedParentNodeImageUrl="folder_open.gif" 
            LeafNodeImageUrl="file.gif" 
            ShowLines="true" 
            LineImagesFolderUrl="images/lines/"
            EnableViewState="true"
            runat="server" >
          </ComponentArt:TreeView>
          </td>
          <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
          <td valign="middle" width="100%" class="MainText">
            <br/>
            <span class="hint">
            This is a file system browser implemented <br/>
            through a programmatically populated treeview, <br/>
            with each level loaded through AJAX callbacks. 
            </span>
            <br/><br/><br/><br/><br/><br/><br/><br/>
          </td>
        </tr>
        </table>    <asp:label id="Label1" runat="server" /> 
        </div>
        
        <demos:about id="demoAboutText" AboutFile="~/treeview/features/ajax_fileExplorer/about.inc" TopPadding="10" runat="server"/>    <demos:footer id="pageFooter" runat="server"/>    </form>
      </body>
    </html>
      

  3.   

    WebForm1.aspx.vbImports System.IO
    Public Class WebForm1
        Inherits System.Web.UI.Page
      Protected WithEvents TreeView1 As ComponentArt.Web.UI.TreeView  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Start with the website root folder 
        Dim rootFolder As String
        rootFolder = Server.MapPath("~")                  
        Dim rootNode As New ComponentArt.Web.UI.TreeViewNode()
        rootNode.Text = "web_samples"
        rootNode.Expanded = True
        rootNode.ImageUrl = "root.gif"
        TreeView1.Nodes.Add(rootNode)
        BuildDirectory(rootFolder, rootNode)
      End Sub  Private Sub BuildDirectory(dirPath As String, parentNode As ComponentArt.Web.UI.TreeViewNode)
        Dim subDirectories As String() = Directory.GetDirectories(dirPath)
        Dim dir As String
        For Each dir in subDirectories
          Dim parts As String() = dir.Split("\"c)
          Dim name As String = parts(parts.Length-1)
          Dim node As New ComponentArt.Web.UI.TreeViewNode 
          node.Text = name
          node.ContentCallbackUrl = "XmlFromFileSystem.aspx?dir=" & dir.Replace("\\", "~") 
          parentNode.Nodes.Add(node)
        Next dir     Dim files As String() = Directory.GetFiles(dirPath)
        Dim file As String 
        For Each file in files
          Dim parts As String() = file.Split("\"c)
          Dim name As String = parts(parts.Length-1)
          Dim node As New ComponentArt.Web.UI.TreeViewNode
          node.Text = name
          Dim fi As New FileInfo(file)
          Select fi.Extension.ToLower()
            Case ".dll" : node.ImageUrl = "dll.gif"
            Case ".aspx" : node.ImageUrl = "aspx.gif"
            Case ".ascx" : node.ImageUrl = "ascx.gif"
            Case ".cs" : node.ImageUrl = "cs.gif"
            Case ".vb" : node.ImageUrl = "vb.gif"
            Case ".config" : node.ImageUrl = "config.gif"
            Case ".gif" : node.ImageUrl = "image.gif"
            Case ".jpg" : node.ImageUrl = "image.gif"
            Case ".xml" : node.ImageUrl = "xml.gif"
            Case ".js" : node.ImageUrl = "js.gif"
            Case ".css" : node.ImageUrl = "css.gif"
          End Select 
          parentNode.Nodes.Add(node)
        Next file   End Sub#Region " Web Form Designer Generated Code "    'This call is required by the Web Form Designer.
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()  End Sub    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: This method call is required by the Web Form Designer
            'Do not modify it using the code editor.
            InitializeComponent()
        End Sub#End RegionEnd Class
      

  4.   

    rootFolder = Server.MapPath("~")                  
    这里是放什么?不懂
      

  5.   

    看你的还是,看不懂,能不能把那个例子的C#那段用VB写给我看看,连着数据库一起比较容易看,你另外写的,看不懂啊
      

  6.   

    终于做出来了
    Imports System.Data
    Imports System.Data.SqlClient
    Imports ComponentArt.Web.UIPublic Class WebForm5
        Inherits System.Web.UI.Page
        Protected TreeView1 As ComponentArt.Web.UI.TreeView
    #Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents Menu1 As ComponentArt.Web.UI.Menu
        Protected WithEvents Button3 As System.Web.UI.WebControls.Button
        Protected WithEvents Button2 As System.Web.UI.WebControls.Button
        Protected WithEvents TextBox11 As System.Web.UI.WebControls.TextBox
        Protected WithEvents CheckBox1 As System.Web.UI.WebControls.CheckBox
        Protected WithEvents TextBox10 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox9 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox8 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox7 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox6 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox5 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox4 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox3 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox2 As System.Web.UI.WebControls.TextBox
        Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
        Protected WithEvents Panel1 As System.Web.UI.WebControls.Panel   
        '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then bulidtree()
        End Sub
        Private Sub bulidtree()
            Dim cnn As SqlConnection
            cnn = New SqlConnection("user id=sa;database=address;data source=localhost")
            cnn.Open()
            Dim ada As New SqlDataAdapter("select * from test", cnn)
            Dim das As New DataSet
            ada.Fill(das)
            das.Relations.Add("test", das.Tables(0).Columns("sortid"), das.Tables(0).Columns("parentsortid"))
            Dim dbRow As System.Data.DataRow
            For Each dbRow In das.Tables(0).Rows
                If (dbRow.IsNull("parentsortid")) Then
                    Dim newNode As ComponentArt.Web.UI.TreeViewNode
                    newNode = CreateNode(dbRow("descr").ToString(), dbRow("imageurl").ToString(), True)
                    TreeView1.Nodes.Add(newNode)
                    PopulateSubTree(dbRow, newNode)
                End If
            Next dbRow
        End Sub
        Private Sub PopulateSubTree(ByVal dbRow As System.Data.DataRow, ByVal node As ComponentArt.Web.UI.TreeViewNode)
            Dim childRow As System.Data.DataRow
            For Each childRow In dbRow.GetChildRows("test")
                Dim childNode As ComponentArt.Web.UI.TreeViewNode = CreateNode(childRow("descr").ToString(), childRow("imageurl").ToString(), True)
                node.Nodes.Add(childNode)
                PopulateSubTree(childRow, childNode)
            Next childRow
        End Sub
        Private Function CreateNode(ByVal text As String, ByVal imageurl As String, ByVal expanded As Boolean) As ComponentArt.Web.UI.TreeViewNode
            Dim node As New ComponentArt.Web.UI.TreeViewNode
            node.Text = text
            node.ImageUrl = imageurl
            node.Expanded = expanded
            Return node
        End Function  
    End Class