none
难道它的items不是从0开始索引的 RRS feed

  • 问题

  • 在页面中添加了一个checkboxlist控件
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                SqlConnection con = DB.createConnection();
                con.Open();
                SqlCommand com = new SqlCommand("select * from interest", con);
                SqlDataReader sdr = com.ExecuteReader();
               
                CheckBoxList1.DataTextField = "likeContent";
                CheckBoxList1.DataValueField = "id";
                CheckBoxList1.DataBind();
                this.CheckBoxList1.DataSource = sdr;
                sdr.Close();
                con.Close();
            }
    再添加一个Button按钮
    protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < CheckBoxList1.Items.Count-1; i++)
            {
                if(CheckBoxList1.Items[i].Selected)
                {
                    Response.Write(CheckBoxList1.Items[i].Value.ToString()+"--"+CheckBoxList1.Items[i].Text+"<br>");
                }
            }

        }
    但是数据库中明明有6个数据“id”从1到6;“likeContent”有6个不同的值,但是当点击Button按钮时若选中CheckBoxList1中的第6个框则不会输出到页面,只能是1到5的项,只有把上面的改为 i < CheckBoxList1.Items.Count才能在页面中显示第6项;请问是怎么回事?难道它的items不是从0开始索引的?

    2009年11月12日 14:20

答案

  • 你好!

    是从 0 开始的,你要理解索引是从 0 开始,最大索引中为 0 对应 Count 1, 你有 6 个数据最大索引为 5 对应的 Count 为 6 所以你的条件应改为 i < 6 或 i <= 5

    知识改变命运,奋斗成就人生!
    2009年11月13日 1:13
    版主