zoukankan      html  css  js  c++  java
  • C#树目录(treeView)的编写

    1,数据库(DAL层)编写

    (1)模板的编写

        public class CategoryModel{
            public int _CategoryID { get; set; }
            public string _CategoryName { get; set; }
            public string _CategoryPy { get; set; }
            public int _ParentID { get; set; }
        }
    

     (2)从数据库中获取集合

            //获取类别信息
            public List<CategoryModel> GetCategoryDal(int ParentID) {
                string str = "select * from Category where ParentID=@ParentID";
                List<CategoryModel> list = new List<CategoryModel>();
                
                SQLiteParameter[] sqlitePara = { new SQLiteParameter("ParentID",ParentID) };
                DbDataReader read= SQLiteHelper.ExecuteReader(str,sqlitePara);
                while (read.Read()) {
                    if (read.HasRows) {
                        CategoryModel model = new CategoryModel();
                        model._CategoryID = read.GetInt32(0);
                        model._CategoryName = read.GetString(1);
                        model._CategoryPy = read.GetString(2);
                        model._ParentID = read.GetInt32(3);
                        list.Add(model);
                    }
                                       
                }
                return list;
            } 

    2,(BLL)层

            //获取目录信息
            public List<CategoryModel> GetCategoryInfo(int id)
            {
                ClassDal dal = new ClassDal();
                return  dal.GetCategoryDal(id);
            }

    3,树目录的编写

    表是这样的

    (用到递归的方   private void TreeGetDate(TreeNodeCollection t,int id)

       {
                ClassBll bll = new ClassBll();//新建BLL层类主要为了调用数据库
                List<CategoryModel> list = new List<CategoryModel>();
                list = bll.GetCategoryInfo(id);
    //
    数据库的数据存在这个集合中(上面的为获取指定parentID的数据)
    /*
    1,第一次传入0;TreeGetDate(TreeView1.Nodes,0);
    则list中的数据为等ParentID为0的数据

    */
    for (int i = 0; i < list.Count; i++) { string name = list[i]._CategoryName;// int pid = list[i]._CategoryID; TreeNode tree = t.Add(name); tree.Tag = pid;
    /*
    接着获取Category的值,把值传给下一次循环
    如:下一次为132则 调用
                    TreeGetDate(tree.Nodes,132);
                    结果就会在tree的子节点上添加
    这样的子节点以此类推
    */
    tree.ImageIndex
    = 0;//显示图片 TreeGetDate(tree.Nodes,pid); } }

  • 相关阅读:
    禁止微信内置浏览器调整字体大小
    常用EXE文件反编译工具【转】
    C++发送HTTP请求---亲测可行(转)
    Cesium简介 [转]
    WebGL可视化地球和地图引擎:Cesium.js
    HTML5 canvas图形库 RGraph【转】
    [GitHub开源]基于HTML5实现的轻量级Google Earth三维地图引擎,带你畅游世界 【转】
    OpenGL实现多层绘制(Layered Rendering) [转]
    深度剖析OpenGL ES中的多线程和多窗口渲染技术
    OOP几大原则【转】
  • 原文地址:https://www.cnblogs.com/kbqLibrary/p/4769483.html
Copyright © 2011-2022 走看看