日期:2014-05-19  浏览次数:20392 次

请教一个关于GridView里面操作CheckBox的问题,代码如下不知道那里错了!
问题:当点击更新的的时候,系统说我的索引超出集合,不能操作
for   (int   i   =   0;   i   <=   GridView_Result.Rows.Count   -   1;   i++)
                    {
                            CheckBox   cbox   =   (CheckBox)GridView_Result.Rows[i].FindControl( "CheckBox1 ");
                            if   (cbox.Checked   ==   true)
                            {
                                    string   sqlstr   =   "update   ass.db_user   set   state=1   where   userid= ' "   +   GridView_Result.DataKeys[i].Value   +   " ' ";
                                    sqlcom   =   new   AsaCommand(sqlstr,   sqlcon);
                                    sqlcon.Open();
                                    sqlcom.ExecuteNonQuery();
                                    sqlcon.Close();
                            }
                    }


------解决方案--------------------
GridView_Result.DataKeys[i] 这个有问题吧,可能是因为有头部或者导航的原因
先判断一下if (e.Row.RowType == DataControlRowType.DataRow)
------解决方案--------------------
用foreach(DataRow dr in GridView1.Rows)吧