2010-02-18 4 views
0

им с помощью TreeView в asp.netTreeView с более чем один из родителей

TreeView как

*parent 
    @child1 
    .child2 
*parent 
    .child 

если я нажимаю child2 после постбэка выравнивания, которая находится в выше, не следует изменять

но Parent1 должны быть свернуты

если я щелкнул дочерний элемент, то родительский узел должен быть свернут

им с помощью Тхи следующий код

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Session["tvExpandNode1"] != null) 
     { 
      TreeView1.FindNode(Session["tvExpandNode1"].ToString()).Expand(); 

     } 
    } 

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
    { 
      if (TreeView1.SelectedNode.Expanded == true) 
       { 
        Session["tvExpandNode1"] = TreeView1.SelectedNode.Parent.Parent.Value; 
        if (strOpenpage == "Report.aspx") 
        { 
         OpenNewWindow(strOpenpage); 
        } 
        else 
        { 
         Response.Redirect(strOpenpage, false); 
        } 
       } 
    } 

его просто не работает должным образом ... пожалуйста обеспечивают ур ценный инфокоммуникационных ........

ответ

0

Я не знаю, если ваша проблема это, но если вы хотите расширить узлы листа, вам нужно развернуть все родительские узлы. Вот рекурсивная функция.

void expandParentNode(TreeNode node) 
{ 
    if (node == null) 
     return; 

    node.Expand(); 
    expandParentNode(node.Parent); 
} 
+0

Если я разворачиваю один родительский узел, тогда другой родительский узел должен быть свернут после перенаправления страницы или обратной передачи – user274139

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