2012-05-18 3 views
0
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
{ 
    string input = TreeView1.SelectedValue.ToString(); 
    DataSet ds = new DataSet(); 
    TreeLogic bl = new TreeLogic(); 
    TreeNode root= new TreeNode(input); 
    ds = bl.getChild(input); 
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
    { 
     TreeNode tnode = new TreeNode(ds.Tables[0].Rows[i][1].ToString()); 
     tnode.SelectAction = TreeNodeSelectAction.Expand; 
     root.ChildNodes.Add(tnode); 
    } 
} 

При выборе родительского узла дочерние узлы не отображаются. Может ли кто-нибудь объяснить почему?Как установить дочерние узлы родительских узлов в TreeView?

+0

Вы делаете все дополнение внутри события Treeview1_selectedNodeChanged. Вы впервые запустили это событие? Попробуйте отладить. – Soundararajan

ответ

0

Edit: Если вы пытаетесь добавить эти новые узлы, как дети выбранного узла, вы делаете это неправильно =) Вы должны сделать это:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
{ 
    TreeNode tnode = new TreeNode(ds.Tables[0].Rows[i][1].ToString()); 
    tnode.SelectAction = TreeNodeSelectAction.Expand; 
    // Add the new TreeNodes underneath the currently selected TreeNode. 
    TreeView1.SelectedNode.ChildNodes.Add(tnode); 
} 
TreeView1.SelectedNode.Expand(); 
0

Мне кажется, что вы добавляете дочерние узлы в root, который является узлом, созданным только локально и не принадлежащим вашему TreeView.

Смежные вопросы