从以前选择的列表框中选择列表框项

本文关键字:列表 选择 | 更新日期: 2023-09-27 17:55:25

我有两个列表框,我正在尝试从第一个列表中自动选择第二个列表。问题是,我卡在第二个 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;
                            }
                        }
                    }
            } 

从以前选择的列表框中选择列表框项

如果两个ListBoxes具有相同的项目:

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

我认为这不是正确的方法。从第一页上的第一个列表框中捕获数据后,将其隐藏在某个位置。然后,在呈现审阅页时,使用以前存储的值设置第二个列表框的 SelectedValue。

无需同步任何内容。

我仍然对你想做什么有点困惑,但这可能会让你开始吗?

    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;