2013-01-23 138 views
0

我有两个列表框,我试图从第一个列表框中自动选择第二个列表框。麻烦的是,我陷入了第二个Foreach循环,第一个不能对它执行insync。有人可以看看,谢谢。从先前选择的列表框中选择列表框项目

 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; 
          } 
         } 
        } 
      } 
+0

为什么你有2个列表框具有完全相同的数据? –

+0

复制第二个最后的审查页面 – jpavlov

+0

所以你试图在不同的页面上同步2个列表框?你在做什么框架? –

回答

3

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

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

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

没有必要同步任何东西。

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;