for (int i = 0; i < CheckBoxList1.Items.Count; i++)
        {
            if (this.CheckBoxList1.Items[i].Selected)
            { 
                Label4.Text = CheckBoxList1.Items[i].Value;
            }
        }CheckBoxList1.Items[i].Value总是为空,但已经选中了,是什么原因啊?

解决方案 »

  1.   

    http://www.cnblogs.com/cnaspnet/archive/2007/05/18/751293.aspx  
      楼主 去参考一下
      

  2.   

    你的代码好像可以;
    Label4.Text = CheckBoxList1.Items[i].Value; 只能保存最后一个选的。
    保存全部用
    Label4.Text += CheckBoxList1.Items[i].Value; 
      

  3.   

    如果你是用绑定的,那要注意有没有设置CheckBoxList1.DataValueField属性,
    没设置的话,干脆用Text吧:Label4.Text = CheckBoxList1.Items[i].Text; 
      

  4.   

    我是这么给checkboxlist添加项的 
    for (int i = 0; i < dsDataSet.Tables[0].Rows.Count; i++)
            {
                string a = dsDataSet.Tables[0].Rows[i][0].ToString();
                string b = dsDataSet.Tables[0].Rows[i][1].ToString();
                //ListBox1.Items.Add(new ListItem("[" + a + "]" + b, a));
                CheckBoxList1.Items.Add(new ListItem("[" + a + "]" + b,a));
            }
    然后点击button时获取选中的值
    for (int i = 0; i < CheckBoxList1.Items.Count; i++) 
            { 
                if (this.CheckBoxList1.Items[i].Selected) 
                { 
                    Label4.Text = CheckBoxList1.Items[i].Value; 
                } 
            } CheckBoxList1.Items[i].Value,CheckBoxList1.Items[i].Text都是空
      

  5.   

    明白了,我解决的办法是在protected void Page_Load(object sender, EventArgs e)里加了句if(!IsPostBack)