2011-11-22 100 views
0

我有关于TReeview和组合框的问题。 问题: 我有一个TreeView父节点和子节点。 我有一个下拉框或组合框。每当我从组合框中选择一个值时,它应该自动选择树视图列表中的同一个节点。Treeview依赖于Combobox

请给我关于如何执行此操作的建议。

这是我试过到目前为止:

protected void nav_dd_parent_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     nav_treeview.selectedvalue = nav_dd_parent.selectedvalue.tostring(); 
} 

但它说,nav_treeview是只读的,它不能被指定任何值。

+1

你有任何代码可以告诉我们吗?你到目前为止尝试过什么?另外,请不要使用ASP标签。我很确定你的意思是ASP.NET,因为你引用了TreeView控件,但是ASP标签有一个很大的声明,告诉你不要使用它。 – jwiscarson

+0

到目前为止,你已经做了什么来尝试解决这个问题?你可以分享一些不起作用的代码吗? – neontapir

回答

0

我只是想下面给你一个例子:

HTML:

<asp:TreeView ID="TreeView1" runat="server"> 
</asp:TreeView> 
<br /> 
<br /> 
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
</asp:DropDownList> 

代码背后:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      Dictionary<string, Int32> myList = new Dictionary<string, Int32>(); 
      myList.Add("Text1", 1); 
      myList.Add("Text2", 2); 
      myList.Add("Text3", 3); 
      myList.Add("Text4", 4); 
      myList.Add("Text5", 5); 

      foreach (KeyValuePair<string, Int32> s in myList) 
      { 
       this.TreeView1.Nodes.Add(new TreeNode(s.Key, s.Value.ToString())); 
       this.DropDownList1.Items.Add(new ListItem(s.Key, s.Value.ToString())); 
      } 
      foreach (TreeNode tn in this.TreeView1.Nodes) 
      { 
       tn.ChildNodes.Add(new TreeNode("Hello World")); 
       tn.Collapse(); 
      } 
     } 
    } 

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (this.DropDownList1.SelectedItem != null) 
     { 
      foreach (TreeNode tn in this.TreeView1.Nodes) 
      { 
       if (tn.Value == this.DropDownList1.SelectedItem.Value) 
       { 
        tn.Selected = true; 
        if (tn.ChildNodes.Count > 0) 
        { 
         tn.Expand(); 
        } 
       } 
       else { 
        tn.Collapse(); 
       } 
      } 
     } 
    } 

希望这是你需要的东西。祝你好运!

0

您需要在DropDownList上设置AutoPostBack并添加OnSelectedIndexChanged事件处理程序。或者,您可以尝试使用JavaScript编写所有内容以避免发布帖子。

+0

autopostback不起作用。每次我选择一个刷新的值并选择默认值并且事件不会被触发 – Ish