从先前选择的列表框中选择列表框项目

时间:2013-01-23 22:05:13

标签: c# asp.net

我有两个列表框,我试图从第一个列表中自动选择第二个列表。麻烦的是,我陷入第二个Foreach循环,第一个不会与它同步。有人可以看看,谢谢。

        foreach (ListItem item in this.clb_Departments.Items)
        {
            foreach (ListItem it in this.cbl_fDepartments.Items)
            {
                    if (item.Value == "2")
                    {
                        if (it.Value == "2")
                        {
                            if (item.Selected == true)
                            {
                                it.Selected = true;
                                break;
                            }
                        }
                    }
                    if (item.Value == "3")
                    {
                        if (it.Value == "3")
                        {
                            if (item.Selected == true)
                            {
                                it.Selected = true;
                            }
                        }
                    }
            } 

3 个答案:

答案 0 :(得分:3)

如果ListBoxes都有相同的项目:

for(int i=0; i<cbl_fDepartments.Items.Count; i++)
    cbl_fDepartments.Items[i].Selected = clb_Departments.Items[i].Selected;

答案 1 :(得分:0)

我不认为这是正确的做法。从第一页的第一个列表框中捕获数据后,将其存放在某处。然后,当您渲染审阅页面时,将第二个列表框的SelectedValue设置为您先前隐藏的值。

无需同步任何内容。

答案 2 :(得分:0)

我仍然对你想要做的事感到困惑,但这可能会让你开始?

    foreach (ListItem item in this.clb_Departments.Items)
    {
        this.cbl_fDepartments.Items[this.cbl_fDepartments.IndexOf(item)].Selected = item.Selected;
    }

如果这不起作用,您可以在foreach内尝试此操作:

this.cbl_fDepartments.Items.Cast<ListItem>().Where(t=>t.Value == item.Value).Selected = item.Selected;