ツリービューでルートノードまたは第1レベルのノードを取得するための以下のコードよりも簡単な方法はありますか?
TreeNode node = treeView.SelectedNode;
while(node != null)
{
node = node.Parent;
}
実際の正しいコードは次のとおりです。
TreeNode node = treeView.SelectedNode;
while (node.Parent != null)
{
node = node.Parent;
}
そうしないと、常にnode = null
ループの最後に到達します。
ところで、ルートが1つしかない場合は、TreeView
直接使用することを検討できますtreeView.Nodes[0]
。その場合、ルートが提供されるためです。
protected void Submit(object sender, EventArgs e)
{
///naidi root
string name = Request.Form["Name"];
if (String.IsNullOrEmpty(name))
return;
if (TreeView1.Nodes.Count <= 1)
{
System.Web.UI.WebControls.TreeNode newNode = new TreeNode("Porposal");
TreeView1.Nodes.Add(newNode);
}
System.Web.UI.WebControls.TreeNode newNode1 = new TreeNode(name);
TreeView1.Nodes[1].ChildNodes.Add(newNode1);
}
これを試して。それは私のために働いた...!
treeView1.TopNode.Expand();
TreeNode rootNode = treeView1.TopNode;
必要なのはこれだけです。SelectedNodeは常に!=nullである必要はありません