日期:2014-05-20  浏览次数:20523 次

在这个方法中如何让checkboxlist实现多重选中?
方法如下:

CheckBoxList cbl = (CheckBoxList)td.Controls[0];
string CheckedString=myDataTable.Rows[0][cbl.ID].ToString();
string[] CheckedItems=CheckedString.Split(',');

foreach(string i in CheckedItems)
  {

foreach(ListItem eachItem in cbl.Items)  
  {  
eachItem.Selected=false;
if(i.ToString()==eachItem.Value)  
eachItem.Selected=true;  



  }

现在有这样一个问题:checkboxlist对应数据库中的字段有比如(1,3)那么在页面上的checkboxlist应该是checkboxlist.Items[1]和checkboxlist.Items[3]被选中,但是在页面上之有checkboxlist.Items[3]被选中,也就是只取数据库中字段所对应的数组字符串中的最后一个数字
请问该如何对这个方法进行改进?

------解决方案--------------------
break 应该加到里面,减少循环次数

foreach(string i in CheckedItems)
{

foreach(ListItem eachItem in cbl.Items)
{

if(i.ToString()==eachItem.Value)
eachItem.Selected=true;
break;
}

}