Treeview依赖于Combobox

时间:2011-11-22 17:49:14

标签: c# asp.net

我有关于TReeview和组合框的问题。 问题: 我有一个包含父节点和子节点的Treeview。 我有一个投递箱或一个组合框。每当我从组合框中选择一个值时,它应该自动选择树视图列表中的相同节点。

请告诉我如何执行此操作的建议。

这是我到目前为止所尝试的:

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

但是它说nav_treeview是只读的,不能分配任何值。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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();
                }
            }
        }
    }

希望这就是你所需要的。祝你好运!