TreeView控件导航

根据数据源的不同,TreeView控件导航可以分为三种方式

  1. 绑定站点地图

    1.1 创建站点地图文件:Web.sitemap

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)
    http://www.CodeHighlighter.com/

    --&gt xml version="1.0" encoding="utf-8"  ?>
    < siteMap  xmlns ="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"   >
      
    < siteMapNode  url ="~/Default.aspx"  title ="首页"   description ="网站的首页" >
        
    < siteMapNode  url ="~/BeiJing/Default_BJ.aspx"  title ="北京分公司"   description ="北京分公司"   >
          
    < siteMapNode  url ="~/BeiJing/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
          
    < siteMapNode  url ="~/BeiJing/Renli.aspx"  title ="人力部"   description ="人力部"   />
          
    < siteMapNode  url ="~/BeiJing/JiShu.aspx"  title ="技术部"   description ="技术部"   />
        
    siteMapNode >
        
    < siteMapNode  url ="~/ShangHai/Default_SH.aspx"  title ="上海分公司"   description ="上海分公司"   >
          
    < siteMapNode  url ="~/ShangHai/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
          
    < siteMapNode  url ="~/ShangHai/Renli.aspx"  title ="人力部"   description ="人力部"   />
          
    < siteMapNode  url ="~/ShangHai/JiShu.aspx"  title ="技术部"   description ="技术部"   />
        
    siteMapNode >
        
    < siteMapNode  url ="~/ShenZhen/Default_SZ.aspx"  title ="深圳分公司"   description ="深圳分公司"   >
          
    < siteMapNode  url ="~/ShenZhen/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
          
    < siteMapNode  url ="~/ShenZhen/Renli.aspx"  title ="人力部"   description ="人力部"   />
          
    < siteMapNode  url ="~/ShenZhen/JiShu.aspx"  title ="技术部"   description ="技术部"   />
        
    siteMapNode >
      
    siteMapNode >
    siteMap >

    1.2 页面上拖放一个SiteMapDataSource数据源控件

    1.3 设置TreeView控件的数据源为SiteMapDataSource数据源控件


  2. 绑定XML文件

    2.1 创建XML文档:

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)
    http://www.CodeHighlighter.com/

    --&gt xml version="1.0" encoding="utf-8"  ?>
    < Company  url ="~/Default.aspx"  title ="首页"   description ="网站的首页" >
      
    < company  url ="~/BeiJing/Default_BJ.aspx"  title ="北京分公司"   description ="北京分公司"   >
        
    < department  url ="~/BeiJing/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
        
    < department  url ="~/BeiJing/Renli.aspx"  title ="人力部"   description ="人力部"   />
        
    < department  url ="~/BeiJing/JiShu.aspx"  title ="技术部"   description ="技术部"   />
      
    company >
      
    < company  url ="~/ShangHai/Default_SH.aspx"  title ="上海分公司"   description ="上海分公司"   >
        
    < department  url ="~/ShangHai/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
        
    < department  url ="~/ShangHai/Renli.aspx"  title ="人力部"   description ="人力部"   />
        
    < department  url ="~/ShangHai/JiShu.aspx"  title ="技术部"   description ="技术部"   />
      
    company >
      
    < company  url ="~/ShenZhen/Default_SZ.aspx"  title ="深圳分公司"   description ="深圳分公司"   >
        
    < department  url ="~/ShenZhen/CaiWu.aspx"  title ="财务部"   description ="财务部"   />
        
    < department  url ="~/ShenZhen/Renli.aspx"  title ="人力部"   description ="人力部"   />
        
    < department  url ="~/ShenZhen/JiShu.aspx"  title ="技术部"   description ="技术部"   />
      
    company >
    Company >

    2.2 页面上拖放一个XmlDataSource数据源控件

    2.3 设置TreeView控件的数据源为XmlDataSource数据源控件,并配置数据源控件


    2.4 配置TreeView数据绑定


    2.5 在节点配置中,手工绑定Xml的节点属性


  3. 手动绑定数据库

    3.1 数据库表部分如下图所示

    DistrictId:行政区划编号

    DIstrictName:行政区划名称

    ParentDistrictId:上级行政区划编号

    DistrictLevel:行政区划级别(1=省级,2=地市级,3=区县级)


    3.2 后台代码

    <!--

    Code highlighting produced by Actipro CodeHighlighter (freeware)
    http://www.CodeHighlighter.com/

    --&gt      protected   void  Page_Load( object  sender, EventArgs e)
        {
            
    // 调用增加TreeView根节点的方法
            AddRootNodes();
        }

        
    ///  
        
    ///  增加根节点
        
    ///  
         private   void  AddRootNodes()
        {
            
    // 配置Sql查询语句和参数(行政区划级别=1/省级)
             string  strSQL  =   " SELECT * FROM [District] WHERE [DistrictLevel]=@DistrictLevel " ;
            SqlParameter[] paras 
    =   new  SqlParameter[]
            {
                
    new  SqlParameter( " @DistrictLevel " , 1 )
            };

            
    // 调用GetDataSet()方法得到数据集
            DataSet ds  =  GetDataSet(strSQL, paras);
            
    // 遍历得到的所有节点
             foreach  (DataRow row  in  ds.Tables[ 0 ].Rows)
            {
                
    // 实例化根节点,并赋值
                TreeNode rootNode  =   new  TreeNode();
                rootNode.Text 
    =  row[ " DistrictName " ].ToString();
                rootNode.NavigateUrl 
    =   string .Format( " ~/ShowDistrict.aspx?DistrictId={0} " , row[ " DistrictId " ].ToString());
                rootNode.Value 
    =  row[ " DistrictId " ].ToString();

                
    // 调用添加该节点的子节点的方法
                AddChildNodes(rootNode);

                
    // 添加TreeView的根节点
                TreeView1_District.Nodes.Add(rootNode);
            }
        }

        
    ///  
        
    ///  添加子节点的方法
        
    ///  
        
    ///  
         private   void  AddChildNodes(TreeNode rootNode)
        {
            
    // 配置Sql查询语句和参数
             string  strSQL  =   " SELECT * FROM [District] WHERE [ParentDistrictId]=@ParentDistrictId " ;
            SqlParameter[] paras 
    =   new  SqlParameter[]
            {
                
    new  SqlParameter( " @ParentDistrictId " ,rootNode.Value)
            };
            
    // 得到数据集DataSet
            DataSet ds  =  GetDataSet(strSQL, paras);
            
    // 遍历数据集中所有的子节点
             foreach  (DataRow row  in  ds.Tables[ 0 ].Rows)
            {
                
    // 实例化子节点并赋值
                TreeNode childNode  =   new  TreeNode();
                childNode.Text 
    =  row[ " DistrictName " ].ToString();
                childNode.NavigateUrl 
    =   string .Format( " ~/ShowDistrict.aspx?DistrictId={0} " , row[ " DistrictId " ].ToString());
                childNode.Value 
    =  row[ " DistrictId " ].ToString();
                
    // 迭代,添加该子节点的所有子节点
                AddChildNodes(childNode);
                
    // 将该字节点添加到根节点中
                rootNode.ChildNodes.Add(childNode);
            }
        }
        
    ///  
        
    ///  方法返回数据集
        
    ///  
        
    ///  
        
    ///  
        
    ///  
         private   static  DataSet GetDataSet( string  strSQL, SqlParameter[] values)
        {
            SqlConnection con 
    =   new  SqlConnection();
            con.ConnectionString 
    =  ConfigurationManager.ConnectionStrings[ " DistrictDBConnectionString " ].ConnectionString;
            SqlCommand cmd 
    =   new  SqlCommand();
            cmd.Connection 
    =  con;
            cmd.CommandText 
    =  strSQL;
            cmd.Parameters.AddRange(values);
            SqlDataAdapter da 
    =   new  SqlDataAdapter(cmd);
            DataSet ds 
    =   new  DataSet();
            da.Fill(ds);
            
    return  ds;
        }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-539616/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-539616/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值