2013-05-09 43 views

回答

0

ASP.NET TreeNode control就是您现在正在使用的内容(与WinForms相对)。有两个相关属性适用于您:

TreeNode.Text - 树上实际显示的内容。
TreeNode.Value - 该节点的基础值。

除非将数据源绑定到TreeView(它听起来不像你正在做的那样),否则你不想混淆DataItem属性(如你所发现的)。即使如此,这只是为了获得价值;你不能以这种方式存储任何东西。

+0

TreeNode.Value是一个字符串属性,它不提供同样的灵活性作为WinForms树视图的标签属性 – 2016-06-20 15:48:14

0

有一个在ASP.NET树节点没有标签属性,但你可以用标记属性impliment自己的树节点

How to extend a built-in TreeNode class of the ASP.NET TreeView control

using System.Web.UI.WebControls; 

namespace CSASPNETInheritingFromTreeNode 
{ 
    public class CustomTreeView : TreeView 
    { 

     protected override TreeNode CreateNode() 
     { 
      return new CustomTreeNode(this, false); 
     } 
    } 

    public class CustomTreeNode : TreeNode 
    { 

     public object Tag { get; set; } 

     public CustomTreeNode() : base() 
     { 
     } 

     public CustomTreeNode(TreeView owner, bool isRoot) : base(owner, isRoot) 
     { 
     } 


     protected override void LoadViewState(object state) 
     { 
      object[] arrState = state as object[]; 

      this.Tag = arrState[0]; 
      base.LoadViewState(arrState[1]); 
     } 


     protected override object SaveViewState() 
     { 
      object[] arrState = new object[2]; 
      arrState[1] = base.SaveViewState(); 
      arrState[0] = this.Tag; 

      return arrState; 
     } 
    } 
} 
相关问题