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);
        }
原文地址:https://www.cnblogs.com/zhuiyi/p/2084024.html