|
分類:[.NET 全般]
OS:WindowsXP 開発環境: ASP.NET VisualStudio2005 言語:C#
お世話になります。C#を始めて1ヶ月あまりの初心者です。 TreeViewの子ノードを削除する方法について教えてください。
TreeViewでノードを選択し、削除ボタンを押すと選択したノードが削除されるプログラムを作りたいのですが、親ノードはうまく削除されるのですが選択したノードが子ノードだと削除されません。 現在以下のソースで処理しております。 (参考Webサイトとはちょっと違いますが、参考通りだと「'System.Web.UI.WebControls.TreeNode' に 'Remove' の定義がありません。」とでます。TreeView1.SelectedNodeプロパティにはRemoveメソッドがないとの意味なのかと思っておりますが・・・)
protected void DelBtn_Click(object sender, EventArgs e) { if (TreeView1.SelectedNode != null) { TreeView1.Nodes.Remove(TreeView1.SelectedNode); } }
デバッグで見ると「SelectedNode」にはちゃんと選択したノード情報(Value値などが選択したノードの値)が入っています。 例: (コントロール名:TreeView1)
-親ノード |→子ノード1 |→子ノード2(選択) 「削除」ボタンクリック
<TreeView1.SelectedNodeのデバッグ内容> - TreeView1.SelectedNode {System.Web.UI.WebControls.TreeNode} System.Web.UI.WebControls.TreeNode Checked false bool + ChildNodes {System.Web.UI.WebControls.TreeNodeCollection} System.Web.UI.WebControls.TreeNodeCollection DataBound false bool DataItem null object DataPath "" string Depth 1 int Expanded null bool? ImageToolTip "" string ImageUrl "" string NavigateUrl "" string + Parent {System.Web.UI.WebControls.TreeNode} System.Web.UI.WebControls.TreeNode PopulateOnDemand false bool SelectAction Select System.Web.UI.WebControls.TreeNodeSelectAction Selected true bool ShowCheckBox null bool? Target "" string Text "子ノード2" string ToolTip "" string Value "子ノード2" string ValuePath "親ノード/子ノード2" string + パブリックでないメンバ
**************************************************************
TreeViewの構成(プロパティとかメソッドとか)自体がまだ良くわかっていない上にプログラミング自体未熟者なため、この処理そのものが間違えているのか、ほかに何か処理が足りないのか(バインドとか?)すらわかりません。
Webサイトに乗っているプロパティなどもちょっと違ったりするので(同じC#と言っていても記載されているプロパティやメソッドがない場合があります。もちろんバージョンとかにも依存するとは思いますが・・・)他にメソッドなどがあるのかなど(Clearとか)も調べてみましたが、だめでした。 なぜ子ノードだと削除されないのか、教えてください!!(削除対象となるノードの指定の仕方が悪いのでしょうか?) よろしくお願いします。
|