我想动态地(在应用程序运行时)将对象数据存储到TreeView
节点。在Windows窗体中,我使用如何将数组数据存储在asp.net中的树节点中TreeView
node.tag = ?
并且没问题。我试试
node.DataItem = something
但它是只读的。那么如何将对象数据存储在ASP.NET TreeView节点中?
我想动态地(在应用程序运行时)将对象数据存储到TreeView
节点。在Windows窗体中,我使用如何将数组数据存储在asp.net中的树节点中TreeView
node.tag = ?
并且没问题。我试试
node.DataItem = something
但它是只读的。那么如何将对象数据存储在ASP.NET TreeView节点中?
ASP.NET TreeNode control就是您现在正在使用的内容(与WinForms相对)。有两个相关属性适用于您:
TreeNode.Text
- 树上实际显示的内容。
TreeNode.Value
- 该节点的基础值。
除非将数据源绑定到TreeView(它听起来不像你正在做的那样),否则你不想混淆DataItem
属性(如你所发现的)。即使如此,这只是为了获得价值;你不能以这种方式存储任何东西。
有一个在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;
}
}
}
TreeNode.Value是一个字符串属性,它不提供同样的灵活性作为WinForms树视图的标签属性 – 2016-06-20 15:48:14