请教下,我在.aspx页面中,拖入一个checkboxlist,然后在.aspx.cs中代码如下strsql = "SELECT * FROM category order by id asc";
//省略
SqlDataReader dr = cmd.ExecuteReader();
this.checkboxlist1.DataTextField = "title";
this.checkboxlist1.DataValueField = "id";
this.checkboxlist1.DataSource = dr;
this.checkboxlist1.DataBind();
protected void btn_Click(object sender, EventArgs e)
        {
for (int i = 0; i < this. checkboxlist1.Items.Count; i++)
            {
               if (this. checkboxlist1.Items[i].Selected)
               {
                Response.Write(this. checkboxlist1.Items[i].Value);
               }
            }
}
当点页面中的按钮提交的时候,选中了一些checkbox,但显示不出结果,如果我把 if (this. checkboxlist1.Items[i].Selected)这里的this. checkboxlist1.Items[i].Selected前面加上 ! ,就是写成 if (!this. checkboxlist1.Items[i].Selected)显示出来的,是所有的checkbox的内容,而不是我选中的内容,请问我这个错在哪里呢?还有一个问题是,我想让让选中的内容的id,通过 |  分割开,就是形式入 1|2|4 这样的形式,在并赋值给一个变量,请问该怎么做呢?谢谢

解决方案 »

  1.   

     if(!Page.IsPostBack)   
    可加了
    for(int i=0;i<=this.CheckBoxList1.Items.Count-1;i++)
            {
                if(this.CheckBoxList1.Items[i].Selected)
                {
                    Response.Write(this.CheckBoxList1.Items[i].Value.ToString() +"-"+this.CheckBoxList1.Items[i].Text + "<br>");
                }
            }
      

  2.   

    !Page.IsPostBack - 加了,没有任何结果显示 Response.Write(this.CheckBoxList1.Items[i].Value.ToString() +"-"+this.CheckBoxList1.Items[i].Text + " <br>");  这个是输入什么?
      

  3.   

    this. checkboxlist1.Items[i].Selected = true   才是 选中的  。。    你那样不报错误嘛 ?