ITPub博客

首页 > Linux操作系统 > Linux操作系统 > TreeView控件导航

TreeView控件导航

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-01-14 16:40:41 0 删除 编辑

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

  1. 绑定站点地图

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

    <!--

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

    -->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/

    -->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/

    -->    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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5327627