Asp.net 动态为TreeView创建结点

虽然TreeView很方便,但是不得不说,它生成的ViewState数量另人发指.....所以还请适当选择性的应用.

首先要有一个站点地图(必须放在UI层的根目录)

 

<? xml version="1.0" encoding="utf-8"  ?>
< siteMap  xmlns ="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"   >
    
< siteMapNode  url ="~/TreeView/Default.aspx"  title ="首页"   description ="" >
        
< siteMapNode  url ="http://www.baidu.com"  title ="百度"   description ="" >
            
< siteMapNode  url ="http://zhidao.baidu.com"  title ="百度知道"  description ="百度知道" ></ siteMapNode >
            
< siteMapNode  url ="http://mp3.baidu.com"  title ="百度音乐"  description ="百度音乐" ></ siteMapNode >
            
< siteMapNode  url ="http://news.baidu.com"  title ="百度新闻"  description ="百度新闻" ></ siteMapNode >
        
</ siteMapNode >

        
< siteMapNode  url ="http://www.google.com.hk"  title ="谷歌"   description ="" >
            
< siteMapNode  url ="http://ditu.google.com"  title ="谷歌地图"  description ="谷歌地图" ></ siteMapNode >
        
</ siteMapNode >
        
< siteMapNode  url ="http://www.cnblogs.com"  title ="博客园"  description ="博客园" >
            
< siteMapNode  url ="http://zhuiyi.cnblogs.com"  title ="我的博客"  description ="" ></ siteMapNode >
        
</ siteMapNode >
    
</ siteMapNode >
</ siteMap >

一个TreeView控件,并为其绑定数据源,一个按钮,并添加Click事件

 

< asp:TreeView  ID ="TreeView1"  runat ="server"  DataSourceID ="SiteMapDataSource1"  ImageSet ="BulletedList4" >
        
</ asp:TreeView >
        
< asp:SiteMapDataSource  ID ="SiteMapDataSource1"  runat ="server"   />
        
< asp:Button  ID ="btnAddNode"  runat ="server"  Text ="动态添加结点"  
            onclick
="btnAddNode_Click"    />

 

事件代码:

 

  protected   void  btnAddNode_Click( object  sender, EventArgs e)
        {
            TreeNode tn 
=   new  TreeNode();
            tn.Text 
=   " 我的博客 " ;
            tn.NavigateUrl 
=   " http://zhuiyi.cnblogs.com " ;

            TreeNode mytreenode 
=  TreeView1.FindNode( " 首页 " );
            TreeView1.FindNode(
" 首页/博客园 " ).ChildNodes.Add(tn);
        }

 

你可能感兴趣的:(treeview)