读书人

checkboxlist的bug

发布时间: 2011-12-21 23:56:01 作者: rapoo

checkboxlist的bug?
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个符合条件的,也只有最后一个会选中,且每次都是最后一个被选中

读书人网 >asp.net

热点推荐