ASP.NET - TreeView

时间:2022-05-04 21:47:59

设置节点图片 :

  • Windows资源管理器左侧的树型资源结构图中,各节点都有图片连接,例如磁盘的图片、光盘的图片和文件夹的图片等,使资源的表现更加形象。IEWebControls的TreeView控件也可以为节点链接图片,这时需要利用以下3个属性关联到节点的标准状态(未展开、未选中)、展开状态和选中状态。
  • ImageUrl属性:TreeNode处于标准状态时显示的图片的地址。
  • ExpandImageUrl属性:TreeNode处于展开状态时显示的图片的地址。
  • SelecteImageUrl属性:TreeNode处于选中状态时显示的图片的地址。

动态添加和删除TreeNode节点:

  TreeView控件中的节点若在整个程序的生命期间都是不变的,则可以在程序设计时使用节点编辑器编辑它,或者在页面的HTML标记中手工添加它。也可根据程序运行中数据变化的需要对节点动态进行增减。在后台代码中调用TreeView控件的Nodes集合的Add方法和AddAt方法增加节点,调用Remove方法删除节点。

  • (一)Nodes.Add方法 Nodes.Add方法向控件加入一个节点,增加的节点放在控件的最后面。下段程序可以向控件TreeView1中增加一个新节点: TreeNode newNode=new TreeNode(); newNode.Text="人文科学系"; TreeView1.Nodes.Add(newNode);
  • (二)Nodes.AddAt方法 Nodes.AddAt方法向控件加入节点时,需要指定节点的索引位置,因此可以将节点插入到原有的节点的中间。下段程序插入一个节点到树的开头。 //创建一个新节点 TreeNode newNode=new TreeNode(); newNode.Text="冶金职院"; //添加新节点到Nodes集合中 TreeView1.Nodes.AddAt(0,newNode);
  • (三)Nodes.Remove方法 Nodes.Remove方法从TreeView控件中移除一个节点。下行程序将树中的第二个节点移除。  TreeView1.Nodes.Remove(TreeView1.Nodes[1]); 直接调用TreeView控件的Nodes.Add方法或Nodes.AddAt方法添加的节点都是顶层节点,调用Nodes.Remove方法删除的也是顶层节点,若要将节点插入到任意层次,或者需要删除非顶层的节点则: 需要在调用上述3个方法之前,有一种方法能够分辨出节点的层次出来,这要用到TreeView控件的GetNodeFromIndex()方法。
  • (四)GetNodeFromIndex方法 GetNodeFromIndex方法返回参数索引号所指定的节点的引用。调用的格式为: TreeView1.GetNodeFromIndex("x.y.z…") 其中TreeView1是当前的树型控件,参数x.y.z指明节点的层次,例如”1.2”表示顶层索引号为1,其下一层索引号为2的那个节点。
  • (五)删除非顶层节点 当要删除顶层索引号为1,其下一层索引号为2的那个节点时,可以写如下的代码:    //获取该节点    TreeNode delNode=this.TreeView1.GetNodeFromIndex("1.2"); //删除该节点 delNode.Remove();
  • (六)插入非顶层节点   要在顶层索引号为1,其下一层索引号为2的那个位置插入一个节点时,可以写如下的代码:    //创建一个新节点 TreeNode newNode1=new TreeNode(); newNode1.Text="多媒体教研室"; //获取插入位置的节点节点 TreeNode addNode=this.TreeView1.GetNodeFromIndex("1.2"); //将新节点插入 addNode.Nodes.AddAt(1,newNode1);

从XML文件读取节点数据:

  利用节点编辑器来编辑TreeView控件的节点,只适应于在编程阶段就可预知节点结构的情况。虽然此后可以动态修改节点,也必须由程序代码实现,若节点结构变化的规律与程序代码不符,就必须修改程序代码。 ASP.NET允许将树型控件节点数据编写在一个XML文档中,程序从这个文档读取数据以构造树型控件的节点。若控件节点所代表的资源发生变化时,只需要修改这个XML文档即可,不需要修改程序代码。

  • (一)从XML文档读取树型控件的节点数据 创建一个Web应用程序项目,向页面内拖入一个TreeView控件。打开控件TreeView1的属性窗口,设置控件的节点的ExpandedImageUrl、ImageUrl和SelectedImageUrl属性,这些属性指定当节点展开或选中时的图片地址。
  • (二)编辑节点的XML文件 在VS.NET集成开发环境中,选择菜单“项目(P)→添加新项(W)”,在添加新项对话框右侧的模板框中选择“XML文件”,在名称框中输入XML文件的名称。本例输入名称“XMLTreeViewNode.xml”,然后单击【打开】按钮,就可以切换到XML文件的编辑窗口,编辑文件的内容如下: <?xml version="1.0" encoding="utf-8" ?> <TREENODES> <TreeNode Text="商品总目"> <TreeNode Text="农产品"> <TreeNode Text="水果"></TreeNode> <TreeNode Text="粮食"></TreeNode> </TreeNode> <TreeNode Text="日化产品"><TreeNode Text="洗涤用品"></TreeNode> <TreeNode Text="化妆用品"></TreeNode> </TreeNode> <TreeNode Text="百货"> <TreeNode Text="服装"></TreeNode> <TreeNode Text="鞋帽"></TreeNode> </TreeNode> <TreeNode Text="家电"> <TreeNode Text="冰箱"></TreeNode> <TreeNode Text="洗衣机"></TreeNode> </TreeNode> </TreeNode> </TREENODES>这个XML文档中只允许有一个根标签<TREENODES></TREENODES>,所有的节点标签都必须放在这个根标签之内,标签标记TREENODES必须大写。每个节点标签<TreeNode ></TreeNode>中定义一个节点,节点标签可以嵌套,嵌套层次表明了节点的结构关系。
  • (三)指定TreeView控件的TreeNodeSrc属性 需要指定TreeView控件的TreeNodeSrc属性,以指示TreeView控件的节点数据和结构来自文件。注打开TreeView控件的属性窗口,在TreeNodeSrc属性上指定其值为刚编写的那个文件“XMLTreeViewNode.xml”。
  • (四)控件效果      运行程序,效果如下图。

  ASP.NET - TreeView