string AdminUserID=dt.Rows[0][ "UserID "].ToString();
char[] a={ ', '};
String[] ID = AdminUserID.Split(a);
bool ok = false;
for (int i = 0; i < ID.Length-1; i++)
{
foreach (ListItem item in RoleCheckBox.Items)
{//有符合条件的管理员,全部设为选中状态
item.Selected = false;
if (item.Value == ID[i].ToString())
{
item.Selected = true;
}
}
}
为什么有两个符合条件的数据确只有一个处于选中状态?
难道是bug?
------解决方案--------------------------------------------------------
因为item的value重复了.
------解决方案--------------------------------------------------------
50%可能性,if (item.Value.Trim() == ID[i].ToString().Trim())
------解决方案--------------------------------------------------------
问题出在 item.Selected = false;
因为你每次都是先设所有的checkbox未不选中,只有符合条件了才把一个选中,但你忘记了,外层循环后,你又执行了foreach (ListItem item in RoleCheckBox.Items)
item.Selected = false;
上次被选中的那个又被item.Selected = false了,
所以按照你的代码,就算有10个符合条件的,也只有最后一个会选中,且每次都是最后一个被选中