这是我的代码 提示 "索引超出范围。必须为非负值并小于集合大小。参数名: index" 
请问改怎么写啊??????Dim mychec As RadioButtonList = New RadioButtonList
        sql = "select * from dc_js1"
        Dim comm As New SqlCommand(sql, conn)
        Dim da As New SqlDataAdapter(sql, conn)
        Dim ds As New DataSet
        da.Fill(ds, "sss")
        conn.Open()
        DataGrid1.DataSource = ds.Tables("sss").DefaultView
        Dim oDataGridItem As DataGridItem
        'mychec = oDataGridItem.Cells(2).FindControl("RadioButtonList1")
        mychec.Items(0).Text = "aasdadasd"
        mychec.Items(1).Text = "aasdadasd"
        mychec.Items(2).Text = "aasdadasd"
        mychec.Items(3).Text = "aasdadasd"        DataGrid1.DataBind()
        conn.Close()

解决方案 »

  1.   

    前两天也遇到这样的问题,情况略有不同,
    给你两个方法,体会下,可能会有所帮助。
    1) DataRowView 的使用 
    写到 _ItemDataBound 事件中
    RadioButtonList cblSex = (RadioButtonList)e.Item.FindControl("cblSex");if(((DataRowView)(e.Item.DataItem))["dcSex"].ToString() == "0")
    {
    cblSex.Items[0].Selected = true;
    }
    else
    {
    cblSex.Items[1].Selected = true;
    }2)使用前提:这里是在 _ItemDataBound 中绑定数据后才使用这样的方法的。((DropDownList)e.Item.FindControl("mddlSubjectTermsClassName")).Items.
    FindByText(DataBinder.Eval(e.Item.DataItem, "tSubjectTermsClassName").ToString()).Selected = true;