我的代码:
            For i = 0 To rpt.Controls.Count - 1
                myCheckBox = rpt.Items(i).FindControl("cb_Id")
            Next i
总是提示:System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小可我用Label5.Text = rpt.Controls.Count - 1 时显示的是5  说明是有数据的...不知道为什么啊..各位大虾帮帮忙哟.小弟先谢了.

解决方案 »

  1.   

    rpt.Controls.Count跟rpt.Items.count是不一样的吧
      

  2.   

    For i = 0 To rpt.Controls.Count - 1  中的rpt是另一个repeater的子repeater,不能这样写吗?
      

  3.   

    protected void commentRpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                DataRowView item = (DataRowView)e.Item.DataItem;
                int commentUserId = Convert.ToInt32(item["UserId"].ToString());
                int level = Convert.ToInt32(item["Level"].ToString());
             
             }
      

  4.   

    to:liuyun1987(流云拂碧)没明白我的意思。。
      

  5.   

    在添加和修改时要取子repeater中的数据应该如何写啊?写在哪呢?我上面这个代码是不是放错位置了,还是根本就写错,反正是取不到值..帮帮忙哟.
      

  6.   

    For i = 0 To rpt.Controls.Count - 1
    myCheckBox = rpt.Items(i).FindControl("cb_Id")
    Next i++++++++++++++++++++++++++++++++++++++
    for i = 0 to rpt.items.count -1
    myCheckBox = rpt.Items(i).FindControl("cb_Id")
    Next i
      

  7.   

    取值的时候必须放在Public Sub rpt_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) 吗?