ExtendedTreeNode という TreeNode から継承するクラスがあります。このタイプのオブジェクトをツリービューに追加することは問題ではありません。しかし、ツリービューからオブジェクトを取得するにはどうすればよいでしょうか?
私はこれを試しました:
TreeNode node = tvManual.Find("path/to/node"); // tvManual is a treeview
return ((ExtendedTreeNode)node).Property;
しかし、これはうまくいきません。次のエラーが表示されます: タイプ 'System.Web.UI.WebControls.TreeNode' のオブジェクトをタイプ 'PCK_Web_new.Classes.ExtendedTreeNode' にキャストできません。
これを機能させるにはどうすればよいですか?
- - - - - - 解決 - - - - - - - - -
[編集] 私のカスタム TreeNode クラスは次のようになります。
public class ExtendedTreeNode : TreeNode
{
private int _UniqueId;
public int UniqueId
{
set { _UniqueId = value; }
get { return _UniqueId; }
}
public ExtendedTreeNode()
{
}
}
このようにして、ノードをツリービューに追加します。
ExtendedTreeNode TN2 = new ExtendedTreeNode();
TN2.Text = "<span class='Node'>" + doc.Title + "</span>";
TN2.Value = doc.ID.ToString();
TN2.NavigateUrl = "ViewDocument.aspx?id=" + doc.ID + "&doc=general&p=" + parent;
TN2.ImageUrl = "Graphics/algDoc.png";
TN2.ToolTip = doc.Title;
TN2.UniqueId = counter;
tvManual.FindNode(parent).ChildNodes.Add(TN2);
このようにして、ExtendedTreeNode オブジェクトを取得します。
TreeNode node = tvManual.Find("path/to/node");
ExtendedTreeNode extNode = node as ExtendedTreeNode;
return extNode.UniqueId;
.NET 3.5 SP1 を使用しています