首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

checkboxlist的bug

2011-12-21 
checkboxlist的bug?stringAdminUserIDdt.Rows[0][ UserID ].ToString()char[]a{ , }String[]IDAdmi

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

热点排行