Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Treeview依赖于Combobox_C#_Asp.net - Fatal编程技术网

C# Treeview依赖于Combobox

C# Treeview依赖于Combobox,c#,asp.net,C#,Asp.net,我对TReeview和组合框有问题。 问题: 我有一个包含父节点和子节点的树视图。 我有一个下拉框或组合框。每当我从组合框中选择一个值时,它就会自动选择treeview列表中的同一个节点 请给我建议如何执行此操作 这就是我迄今为止所尝试的: protected void nav_dd_parent_SelectedIndexChanged(object sender, EventArgs e) { nav_treeview.selectedvalue = nav_dd_parent

我对TReeview和组合框有问题。 问题: 我有一个包含父节点和子节点的树视图。 我有一个下拉框或组合框。每当我从组合框中选择一个值时,它就会自动选择treeview列表中的同一个节点

请给我建议如何执行此操作

这就是我迄今为止所尝试的:

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

但它表示nav_treeview是只读的,不能为其分配任何值。

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

我只是尝试了以下方法来为您提供一个示例:

HTML:




代码隐藏:

 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();
                }
            }
        }
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
Dictionary myList=新字典();
myList.Add(“Text1”,1);
myList.Add(“Text2”,2);
myList.Add(“Text3”,3);
myList.Add(“Text4”,4);
myList.Add(“Text5”,5);
foreach(myList中的键值对)
{
Add(新的TreeNode(s.Key,s.Value.ToString());
this.DropDownList1.Items.Add(新列表项(s.Key,s.Value.ToString());
}
foreach(此.TreeView1.Nodes中的TreeNode tn)
{
添加(新的TreeNode(“Hello World”);
tn.坍塌();
}
}
}
受保护的void DropDownList1\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(this.DropDownList1.SelectedItem!=null)
{
foreach(此.TreeView1.Nodes中的TreeNode tn)
{
如果(tn.Value==this.DropDownList1.SelectedItem.Value)
{
tn.所选=真;
如果(tn.ChildNodes.Count>0)
{
tn.Expand();
}
}
否则{
tn.坍塌();
}
}
}
}

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

你有代码给我们看吗?到目前为止你试过什么?另外,请不要使用ASP标记。我很确定你指的是ASP.NET,因为你已经引用了
TreeView
控件,但是ASP标签有一个很大的免责声明告诉你不要使用它。到目前为止,你做了什么来解决这个问题?你能分享一些不起作用的代码吗?自动回发不起作用。每次我选择一个值时,它都会刷新并选择默认值,并且不会触发事件
 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();
                }
            }
        }
    }