就是从数据库中取出值,里的值是用,来隔开的,如:中国,美国,  这种,然后写入页面的一个CHECKBOXLIST控件中,可总是显示的不对。奇怪,我看了半天也看不出来什么地方有错误,请大家帮帮忙,谢谢
                if (sdr["成果类别"].ToString() != "")
                {
                    string[] bs1 = sdr["成果类别"].ToString().Split(',');
                    for (int i = 0; i < bs1.Count() -1 ; i++)
                    {
                        for (int ii = 0; ii < this.CheckBoxList1.Items.Count -1; ii++)
                        {
                            if (bs1[i] == this.CheckBoxList1.Items[ii].Value)
                            {
                                this.CheckBoxList1.Items[ii].Selected = true;
                            }
                            else
                            {
                                this.CheckBoxList1.Items[ii].Selected = false;
                            }
                        }
                    }
                }

解决方案 »

  1.   

    if (sdr["成果类别"].ToString() != "") 
                    { 
                        string[] bs1 = sdr["成果类别"].ToString().Split(','); 
                        for (int i = 0; i < bs1.Length -1 ; i++) 
                        { 
                         //不知道这里面你要干什么,逻辑感觉不对,如果是绑定,这还没绑定,列表的count为0,肯定没用
                            for (int ii = 0; ii < this.CheckBoxList1.Items.Count -1; ii++) 
                            { 
                                if (bs1[i] == this.CheckBoxList1.Items[ii].Value) 
                                { 
                                    this.CheckBoxList1.Items[ii].Selected = true; 
                                } 
                                else 
                                { 
                                    this.CheckBoxList1.Items[ii].Selected = false; 
                                } 
                            } 
                        } 
                    }
      

  2.   

             if (sdr["成果类别"].ToString() != "") 
                    { 
                        string[] bs1 = sdr["成果类别"].ToString().Split(','); 
                        for (int i = 0; i < bs1.length  ; i++) 
                        { 
                             
                                if( this.CheckBoxList1.Items.FindItemByValue( bs1[i] ) != null )
                                { 
                                    this.CheckBoxList1.SelectedIndex = i
                                    break;
                                } 
                                                
                        } 
                    }
      

  3.   

                                if (bs1[i] == this.CheckBoxList1.Items[ii].Value) 
                                { 
                                    this.CheckBoxList1.Items[ii].Selected = true; 
                                } 
                                else 
                                { 
                                    this.CheckBoxList1.Items[ii].Selected = false; 
                                } 自己分析了一下,问题出错在这里了,后面判断的值会把前面的全部设为FALSE,所以无论怎么读,前面的值全是FALSE,所以控件上的值也没有被选中,谢谢大家。