指定的参数已超出有效值的范围。
参数名: index 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: index源错误: 
行 89:         for (int i = 0; i < 5; i++)
行 90:         {
行 91:             if (((TextBox)(GridView1.Rows[e.RowIndex].Cells[i].Controls[0])).Text.ToString().Trim() == "")
行 92:             {
行 93:                 GridView1.EditIndex = -1;
     行: 91 请问这是什么回事?
我是想让GridView更新时防止某些字段值为空,因为有几个Text所以用for循环,能编译,但在某TextBox值为空时点更新就出现上述错误,不用for循环一个一个写是可以的,请问是什么原因?

解决方案 »

  1.   

    i < 5,首先要保证列表中有5行数据。先做判断
      

  2.   


    Cells[]是行吗?不是列?我更新数据时到时[0]到[6]的啊,删除LinkBotton在[8]列也对啊
      

  3.   

    null的时候trim()会有错误的···,你断点到哪里,看看倒底哪里错误啊
      

  4.   

    if (((TextBox)(GridView1.Rows[e.RowIndex].Cells[i].Controls[0])).Text.ToString().Trim() == "")
    你把这句话拆分出来才容易看出问题,如:
    int rowindex = e.RowIndex;
    TextBox tb = (TextBox)GridView1.Rows[rowindex].Cells[i].Controls[0];
    if(tb.Text.Trim()=="")
    {
    //...
    }
    找到到底哪里错了再说
      

  5.   

    if (((TextBox)(GridView1.Rows[e.RowIndex].FindControl("textBox1"))).Text.ToString().Trim() == "")
      

  6.   


    单个判断是没问题,但现在我想用for循环来判断,却出现错误,想知道是什么原因,因为一个一个判断不实际