因為我要與數據庫聯系起來,所以必須後台編寫:

'tree 綁定
    Private Sub Loadtree()Sub Loadtree()
        Dim myda As SqlDataAdapter
        Dim ds As DataSet = New DataSet
        Dim i As Integer = 0
        Dim ii As Integer = 0

        '系統資料類別
        mysql = "SELECT DISTINCT BasicData_Type FROM dbo.BasicData "

        sqlcomm(mysql.Trim)
        ds.Tables().Clear()
        conn.sqlconn_Open()
        myda = New SqlDataAdapter(mycomm)
        myda.Fill(ds, "sys_type")
        conn.sqlconn_Close()

        mysql = "SELECT DISTINCT BasicData_Type, BasicData_Name, BasicData_Code"
        mysql &= " FROM dbo.BasicData ORDER BY BasicData_Type"
        sqlcomm(mysql.Trim)

        conn.sqlconn_Open()
        myda = New SqlDataAdapter(mycomm)
        myda.Fill(ds, "sys_info")
        conn.sqlconn_Close()

        '加入type
        Me.TreeView1.Nodes.Clear()

        For i = 0 To ds.Tables("sys_type").Rows.Count - 1
            Dim trestr As String = ds.Tables("sys_type").Rows(i)(0)
            Dim typeNode As New TreeNode(trestr.Trim)
            TreeView1.Nodes.Add(typeNode)
            '加入對應info
            For ii = 0 To ds.Tables("sys_info").Rows.Count - 1
                Dim type As String = ds.Tables("sys_info").Rows(ii)(0)
                If trestr.Trim = type.Trim Then
                    Dim node As New TreeNode()
                    node.Text = ds.Tables("sys_info").Rows(ii)(1)
                    node.Value = ds.Tables("sys_info").Rows(ii)(2)
                    typeNode.ChildNodes.Add(node)
                End If
            Next
        Next

    End Sub
 '點擊tree編輯
    Protected Sub TreeView1_SelectedNodeChanged1()Sub TreeView1_SelectedNodeChanged1(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged
        Me.TextBox3.Text = TreeView1.SelectedNode.Text
        Me.Hidden1.Value = TreeView1.SelectedNode.Value
        'sys_info()
    End Sub

.Parent获得父结点,爷爷就是  
  ((TreeNode)((TreeNode)this.TreeView1.GetNodeFromIndex(this.TreeView1.SelectedNodeIndex).Parent).Parent).NodeData

判斷點擊的節點層:
Me.TreeView1.SelectedNode.Depth

private   void   NodeLostManagement(   string   errorID   )  
  {  
  //   Show   Message  
  this.ShowMessage(this.GetMessage(errorID));  
   
  //   Get   New   Tree   Info  
  DataTable   dtTree   =   new   DmsDB.TreeOperationDB().GetTreeData();  
   
  //   Old   Tree   SelectedIndex  
  string   oldTreePath   =   this.tvDocDir.SelectedNodeIndex;  
   
  //   New   Tree   SelectedIndex  
  string   newTreePath   =   string.Empty;  
   
  //   Check   Old   Node   (first   Check   Root   Node)  
  TreeNode   currentNode   =   this.tvDocDir.Nodes[0];  
   
  //   Split   OldSelectedIndex  
  string   []   oldNodeIndex   =   oldTreePath.Split('.');  
   
  for(int   i   =   0;i   <oldNodeIndex.Length   ;i++)  
  {  
  //   if   node   id   exists   in   the   new   tree    
  //   we   add   it   into   new   tree   selectedIndex  
  if(dtTree.Select("NodeId   ="   +   currentNode.ID).Length   >   0)  
  {  
  if(   i   ==   0   )  
  {  
  //   Move   Check   Node   into   next   node   (   Old   Tree   )  
  currentNode   =   currentNode.Nodes[int.Parse(oldNodeIndex[i+1])];  
  //   Root   Node    
  newTreePath   =   oldNodeIndex[i];  
  }  
  else  
  {  
  //   Move   Check   Node   into   next   node   (   Old   Tree   )  
  currentNode   =   currentNode.Nodes[int.Parse(oldNodeIndex[i+1])];  
  //   Sub   Node  
  newTreePath   =   newTreePath   +   "."   +   oldNodeIndex[i];  
  }  
  }  
  }  
   
  //   Rebuild   Tree  
  this.rebuildTree(newTreePath);  
   
  //   Refresh   the   screen  
  tvDocDir_SelectedIndexChange(   new   object()   ,   new   Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs("0","0"));  
  }

Private   Sub   TreeView1_AfterCheck(ByVal   sender   As   Object,   ByVal   e   As   System.Windows.Forms.TreeViewEventArgs)   Handles   TreeView1.AfterCheck  
                  Try  
                          TreeView1.BeginUpdate()  
                          If   e.Action   <>   Windows.Forms.TreeViewAction.Unknown   Then  
                                  If   e.Node.Nodes.Count   >   0   Then  
                                          '   Calls   the   CheckAllChildNodes   method,   passing   in   the   current    
                                          '   Checked   value   of   the   TreeNode   whose   checked   state   changed.    
                                          Me.CheckAllChildNodes(e.Node,   e.Node.Checked)  
                                  End   If  
                                  If   Not   e.Node.Parent   Is   Nothing   Then  
                                          Me.CheckParentNodes(e.Node.Parent)  
                                  End   If  
                          End   If  
                          TreeView1.EndUpdate()  
                  Catch   ex   As   Exception  
                          Windows.Forms.MessageBox.Show(ex.Message)  
                  End   Try  
          End   Sub  
   
          Private   Sub   CheckAllChildNodes(ByVal   treeNode   As   Windows.Forms.TreeNode,   ByVal   nodeChecked   As   Boolean)  
                  Dim   node   As   Windows.Forms.TreeNode  
                  For   Each   node   In   treeNode.Nodes  
                          node.Checked   =   nodeChecked  
                          If   node.Nodes.Count   >   0   Then  
                                  '   If   the   current   node   has   child   nodes,   call   the   CheckAllChildsNodes   method   recursively.  
                                  Me.CheckAllChildNodes(node,   nodeChecked)  
                          End   If  
                  Next   node  
          End   Sub  
   
          Private   Sub   CheckParentNodes(ByVal   treeNode   As   Windows.Forms.TreeNode)  
                  Dim   node   As   Windows.Forms.TreeNode  
                  Dim   flag   As   Boolean   =   False  
                  For   Each   node   In   treeNode.Nodes  
                          If   node.Checked   Then  
                                  flag   =   True  
                          End   If  
                  Next  
                  treeNode.Checked   =   flag  
                  If   Not   treeNode.Parent   Is   Nothing   Then  
                          Me.CheckParentNodes(treeNode.Parent)  
                  End   If  
          End   Sub  
   
  你看一下这个代码。需要把treeview前面打checkbox打开。
http://topic.csdn.net/t/20010912/10/283301.html

转载于:https://www.cnblogs.com/Nina-piaoye/archive/2006/07/07/445085.html

tree view 後台編寫相关推荐

  1. USB HID 多设备检查工具,使用USB Tree View源码修改而来

    最近一直在研究USB HID多设备升级,然后就查看了微软提供的WDK USB Tree View源码,但是没有找到USB多设备端口绑定的决定因素,当在电脑接上多个相同的USB设备时,就不好判断USB ...

  2. JavaFX UI控件教程(十四)之Tree View

    翻译自   Tree View 在本章中,您将学习如何在JavaFX应用程序中构建树结构,向树视图添加项,处理事件以及通过实现和应用单元工厂来自定义树单元. 包的TreeView类javafx.sce ...

  3. django ipython shell_通過django的shell_plus編寫ipython腳本

    I'm writing a shell script which runs a command through ipython with the -c option like this: 我正在編寫一 ...

  4. (转)用Ajax技术让IE Web Control Tree View实现大数据量读取

    转自:http://www.cnblogs.com/dingsea/archive/2005/10/26/262220.html 相信不少人都用过微软提供的一款控件: IEControl, 其中的Tr ...

  5. [SVA]SystemVerilog Assertion(SVA)編寫經驗

    SystemVerilog Assertion(SVA)編寫經驗 1.断言的目的 传统的验证方法是通过加激励,观察输出.这种方法对案例的依赖严重,案例设计不好,问题不便于暴露.而断言是伴随RTL代码的 ...

  6. 源码天堂JAVA_src 一個java編寫的天堂服務端範例 ! Script 240万源代码下载- www.pudn.com...

    文件名称: src下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 2396 KB 上传时间: 2015-06-19 下载次数: 0 详细说明:一個java編寫的 ...

  7. 為 Swift 代碼編寫含有 Mardown 語法的文檔

    `> 原文:Documenting Your Swift Code in Xcode Using Markdown 作者:GABRIEL THEODOROPOULOS 译者:kmyhy 在 Xc ...

  8. Angular实现递归指令 - Tree View

    在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...

  9. android 直接v4l2驱动,基於V4L2驅動程序的USB攝像頭Android(JNI)的編寫(三)

    在上兩篇文章基於V4L2驅動程序的USB攝像頭Android(JNI)的編寫(一)和基於V4L2驅動程序的USB攝像頭Android(JNI)的編寫(二)中,我詳細介紹了如何配置V4L2的環境.設置捕 ...

最新文章

  1. linux使用pyodbc和freetds连接sqlserver
  2. android 开发时遇到的环境问题3--eclipse整个项目工程报错
  3. easyui numberbox一些常用属性,方法
  4. Snapshot Instance 操作详解 - 每天5分钟玩转 OpenStack(36)
  5. 5个python标准库及作用_零基础编程——Python标准库使用
  6. Asp.Net实例:C# 绘制统计图(三) ——扇形统计图的绘制
  7. 聊聊spring的ioc
  8. J2EE事务并发控制策略总结
  9. dokuwiki语法
  10. android手机charles证书下载
  11. 【Python】xlwings-删除重复行
  12. SAP中税码、税率、税务科目的几个表及其中的勾稽关系
  13. [Swift]求最大公约数和最小公倍数【用微信查看本文链接可查看到引用图片】
  14. SCARA四轴机器人eye-to-hand手眼标定(九点标定)
  15. php ppt生成图片不显示,ppt图片在word中不能正常显示,只显示为矩形框的解决方法...
  16. 写bug的日常——KeyError错误原因
  17. mysql的时区_MySQL时区支持
  18. 微信小程序二维码识别
  19. 2021年汽车和消费品安全、机动车排放召回情况及主要缺陷
  20. 感悟 - 研发团队需具备的共同理念

热门文章

  1. 【微信小程序企业级开发教程】后台用Java操作MySQL表
  2. 前端运行python代码几种方式_前的解释|前的意思|汉典“前”字的基本解释
  3. 网站优化时不容错过的时期有哪几个?
  4. github 慢_告别github 下载慢问题,让你的github下载速度起飞
  5. 软件测试方法单元测试例子,service单元测试例子
  6. js实现一键复制到剪切板上_你的“剪切板”正在被网赚者控制
  7. graphviz linux教程,程序员绘图利器 — Graphviz
  8. linux pid t 头文件_Linux信号处理
  9. java构造方法嵌套,laravel查询构建器中的嵌套查询
  10. python 任务计划_windows 10 设定计划任务自动执行 python 脚本的方法