2011-11-22 46 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