首页 > 其他分享 >WebForm中的treeView的简单使用

WebForm中的treeView的简单使用

时间:2022-09-22 15:33:32浏览次数:56  
标签:Node code WebForm ds compTreeView 简单 treeView 节点 Row

我们要使用treeView,首先需要对应树状图关系的表结构,如省市区的结构,大概如下

 完成效果图(省市区结构),大概如下:

 新增一个citys.aspx页面,在页面中添加treeView

<div>
   <asp:TreeView ID="compTreeView" runat="server"  OnSelectedNodeChanged="compTreeView_SelectedNodeChanged"> </asp:TreeView>
</div>

后台调用的方法

        /// <summary>
        /// 递归添加树的节点
        /// </summary>
        /// <param name="ParentID"></param>
        /// <param name="pNode"></param>
        public void AddTree(string ParentId, TreeNode pNode)
        {
            DataSet ds = (DataSet)this.ViewState["ds"];
            DataView dvTree = new DataView(ds.Tables[0]);
            //过滤ParentID,得到当前的所有子节点
            var code = ParentId == "" ? $"[code]=440000" : $"[parent_code]={ParentId}";
            dvTree.RowFilter = code;

            foreach (DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                if (pNode == null)
                {    //添加根节点
                    Node.Text = Row["name"].ToString();
                    Node.Value = Row["code"].ToString();
                    compTreeView.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(Row["code"].ToString(), Node);    //再次递归
                }
                else
                {   //̀添加当前节点的子节点
                    Node.Text = Row["name"].ToString();
                    Node.Value = Row["code"].ToString();
                    pNode.ChildNodes.Add(Node);
                    Node.Expanded = false;
                    AddTree(Row["code"].ToString(), Node);     //再次递归
                }
            }
        }

        /// <summary>
        /// 获取树状结构的数据
        /// </summary>
        public void GetTreeData()
        {
            // 定义数据库连接
            SqlConnection CN = new SqlConnection();
            try
            {
                //初始化连接字符串
                CN.ConnectionString =
                "data source=.;initial catalog=ACT_220820;user id=sa;Password=sa;";
                CN.Open();

                SqlDataAdapter adp = new SqlDataAdapter("select * from act_citys order by code asc", CN);
                DataSet ds = new DataSet();
                adp.Fill(ds);
                this.ViewState["ds"] = ds;
            }
            catch (Exception)
            {
                //̀跳转程序的公共错误处理页面
            }
            finally
            {
                CN.Close();
            }
            //调用递归函数,完成树形结构的生成
            AddTree("", (TreeNode)null);
        }

        /// <summary>
        /// compTreeView的选中节点事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void compTreeView_SelectedNodeChanged(object sender, EventArgs e)
        {       
            //获取选中节点的value和text
            string nodeValue = compTreeView.SelectedNode.Value;
            string nodeText = compTreeView.SelectedNode.Text;        
            //置选中节点的Selected属性为false
            compTreeView.SelectedNode.Selected = false;

        }

记得在后台的Page_load 添加

        protected void Page_Load(object sender, EventArgs e)
        {      
            if (!Page.IsPostBack)
            {
                GetTreeData();
            }
        }

其中compTreeView_SelectedNodeChanged()函数是节点选中事件,可以做这个方法做下业务。(如左边省市区树状结构,右边单位信息,通过点击对于节点过滤查询单位信息等)

 

标签:Node,code,WebForm,ds,compTreeView,简单,treeView,节点,Row
From: https://www.cnblogs.com/xielong/p/16719494.html

相关文章

  • vue 中 watch 的简单使用
    method同级watch:{//监听/**第一种方式:监听对象里面的属性,键路径必须加上引号*/"queryParams.fileName"(newVal,oldVal){console.log(......
  • React + Eartho 与 3 个简单的步骤集成
    React+Eartho与3个简单的步骤集成如果您已经关注并访问了您的第一个地球和React经验,那么我相信你会感觉很棒。它一次为开发人员提供了许多好处。如果你有地球......
  • Mac上简单而功能强大的视频播放器:zFuse Pro
    轻播zFusePromac中文版是一款简单强大好用的万能视频播放器,拥有简洁、轻快、好用的特点。它采用最新DirectX硬件加速技术,特有画面增益,清晰播放720p、1080p高清。zFuse......
  • apisix 源码简单分析(未完)
    1APISIX概述apisix与kong类似,基于openresty构建的api网关,抽象了route、service、upstream、plugin、consumer等数据模型。基本可以将apisix看作是kong的重构,运用大量Lu......
  • 从U盘上安装windows操作系统的简单方法
    对于没有光驱的上网本有可以用此方法,省了去刻录系统盘! 使用软件:WinSetupFromUSB 下载地址: http://down.52z.com//xl/WinSetupFromUSB.rar 第一步,打开WinSetupFromUS......
  • T1057 简单计算器(信息学一本通C++)
     目录 [题目描述]一个最简单的计算器,支持+,-,*,/四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而:   1.如果出现除数为0......
  • redis的简单使用
    1.Redis安装Redis下载官网下载将压缩包上传到Linux服务器上/opt目录下解压压缩文件tar-zxvfredis-6.2.3.tar.gz安装GCC编译器yuminstall-ygcc......
  • 简单聊聊大A内资的问题
    简单聊聊大A内资的问题转者按:根据对大A的了解,本人同意原文的观点(所以我不碰股票)。至少,按文章说的做,不至于成为冤大头。 简单聊聊内资的问题吧,当然仅代表个人的看法哈,而......
  • 010——面向对象基础案例——简单实现简易购物车代码演示
    熟悉面向对象思维创建类packagecom.google.demo;/***@authorNorth*@date2022/9/2013:27*/publicclassGoods{intid;//编号Stringname;/......
  • ansible的安装与简单使用
    1.安装前需要epel的repo文件以及2.6以上的python可以在阿里镜像站下载到2.开始安装我这里只有两台虚拟机,一台作为控制端,一台作为被控端控制端:192.168.10.144(之后称主......