我想動態地(在應用程序運行時)將對象數據存儲到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