打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
动态建立TreeView节点
TreeView经常用来表现复杂的层级式数据结构,因此不同于静态菜单。我们通常是通过程序动态将数据传输给TreeView以建立其节点的,并且通过取得节点的关联值,执行某些特定的动作。建立节点的语法必须根据节点标签进行引用,假设你在网页上建立了一个TreeView控件,并且将其命名为TreeView1,在其中加入单一节点的程序代码如下:
TreeNode nodeVBNet = new TreeNode("Visual Basic.NET");
tvFB.Nodes.Add(nodeVBNet);
你还可以利用另外一个版本的方法,将其加入到指定的位置中,而所要加入的位置是由以0为起始值的索引值指定的,如下式。这段程序代码将一个名称为"Visual C# 2005"的节点如入到群组里面的第2个节点的位置。
TreeNode nodecs = new TreeNode("Visual C# 2005");
tvFB.Nodes.AddAt(1, nodecs);
如果你想要进一步将指定的节点加到某个节点成为其下的子节点,例如,为上述的"Visual Basic.NET"加入一个"My对象"子节点,所需的程序代码如下: TreeNode nodeMy = new TreeNode("My 对象探索");
nodeVBNet.ChildNodes.Add(nodeMy);
nodeVBNet是上面建立的节点,我们要将nodeMy加入到其子节点的位置,可以引用ChildNodes集合的Add方法实现。为了了解如何通过程序代码建立TreeView节点,现在我们通过示例进行说明。
示例FBTreeView
先来看看这个示例所呈现的结果,在浏览器中载入网页,如下图所示,随意选择任何一个节点,网页的TreeView上便出现所选择的节点名称。
 
建立一个新网站,拖曳一个TreeView控件到Default网页中,切换到程序代码文件,输入以下的内容:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TreeNode nodeVBNet = new TreeNode("Visual Basic.NET");
TreeNode nodeMy = new TreeNode("My对象");
TreeNode nodeVBs = new TreeNode("VB6升级");        TreeNode nodecs = new TreeNode("C#");
TreeNode nodel = new TreeNode("基础语法");
TreeNode nodeoop = new TreeNode("OOP设计");
TreeNode nodeThread = new TreeNode("多线程");          TreeNode nodeNET = new TreeNode("NET");
TreeNode nodeNET2 = new TreeNode("NET 2.0");
TreeNode nodeNET3 = new TreeNode("NET 3.0");
TreeNode nodeCLR = new TreeNode("CLR");        TreeNode nodeASPNET = new TreeNode("ASP.NET");
TreeNode nodeControl = new TreeNode("控件");
TreeNode nodeDataBind = new TreeNode("数据绑定");
TreeNode nodeP = new TreeNode("个性化网页");        TreeNode nodeADONET = new TreeNode("ADO.NET");
TreeNode nodeCONN = new TreeNode("联机设置");
TreeNode nodeDataSource = new TreeNode("DataSource");        if (!IsPostBack)
{
tvFB.Nodes.Add(nodeNET);
tvFB.Nodes.Add(nodeVBNet);
tvFB.Nodes.Add(nodecs);
tvFB.Nodes.Add(nodeASPNET);
tvFB.Nodes.Add(nodeADONET);            //VB.NET
nodeVBNet.ChildNodes.Add(nodeMy);
nodeVBNet.ChildNodes.Add(nodeVBs);            //C#
nodecs.ChildNodes.Add(nodel);
nodecs.ChildNodes.Add(nodeoop);
nodecs.ChildNodes.Add(nodeThread);            //NET
nodeNET.ChildNodes.Add(nodeNET2);
nodeNET.ChildNodes.Add(nodeNET3);
nodeNET.ChildNodes.Add(nodeCLR);            //ASP.NET
nodeASPNET.ChildNodes.Add(nodeControl);
nodeASPNET.ChildNodes.Add(nodeDataBind);
nodeASPNET.ChildNodes.Add(nodeP);            //ADO.NET
nodeADONET.ChildNodes.Add(nodeCONN);
nodeADONET.ChildNodes.Add(nodeDataSource);
}
}
}
这段程序代码建立了5个根节点,然后通过ChildNodes一一为其加入子节点。读者可以自行与上述通过标签形式加入节点的网页内容进行比对。
除了建立节点,另外一个使用TreeView控件必须了解的技巧是取得用户所选择的节点。用户选择节点,触发SelectedNodeChanged事件来执行某些特定的程序功能,开发人员则在此事件处理程序里,编写相关的程序代码。将一个标签拖曳到网页上,并且双击Selected- NodeChanged事件产生事件,处理程序的相关程序代码,如下图所示。
 
现在在事件处理程序里面,填入下面的程序代码,当用户单击某一个节点的时候,这段程序代码被触发,取得节点的值,并将其显示在网页上配置的标签控件中。
protected void tvFB_SelectedNodeChanged(object sender, EventArgs e)
lblClick.Text = tvFB.SelectedValue;
}
从这个示例中,我们看到了如何用后置程序代码动态建立所需的TreeView节点。当这些节点必须从数据库等外部数据源取得时,这种技巧非常有用,可以让我们摆脱静态数据的限制,建立更弹性的TreeView架构。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET(C#)-利用递归遍历文件夹和文件存入TreeView_网站学堂_asp p...
采用递归算法为TreeView控件加载节点(节点信息保存于SqlServer) ASP.Net相...
asp.net为Treeview动态增加节点实例
C# TreeView编辑
Asp.net 2.0 Treeview无限级无刷新示例
C#生成无限级别菜单 treeview绑定数据库 实践成果
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服