0

我有两个列表框,我试图从第一个列表中自动选择第二个列表。问题是,我陷入了第二个 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;
                            }
                        }
                    }
            } 
4

3 回答 3

3

如果两者ListBoxes都有相同的项目:

for(int i=0; i<cbl_fDepartments.Items.Count; i++)
    cbl_fDepartments.Items[i].Selected = clb_Departments.Items[i].Selected;
于 2013-01-23T22:17:51.230 回答
0

我不认为这是正确的方法。从第一页的第一个列表框中捕获数据后,将其存储在某处。然后,当您呈现评论页面时,您将第二个列表框的 SelectedValue 设置为您之前存储的值。

无需同步任何内容。

于 2013-01-23T22:16:03.177 回答
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;
于 2013-01-23T22:16:31.340 回答