protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs  e)
    {
        String strsql = "delete from 评价标准 where 二级指标=" + GridView1.DataKeys[e.RowIndex].Value.ToString()+"" ;
        
       
        BaseClass1.execsql(strsql);
        bindgrig();    }
GridView里面增加了一个删除列,单击删除时,发生了“索引超出范围。必须为负值并小于集合大小“参数名:index

解决方案 »

  1.   

    断点进去,看看这个e.RowIndex值为多少
      

  2.   

      <asp:LinkButton ID="LinkButton2" runat="server" CommandName="delete" CausesValidation="False"  OnClientClick="return confirm('确认要删除吗?');">删除</asp:LinkButton>
      protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                int id=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value));
               //删除
                BindData();
            }
      

  3.   

      <asp:LinkButton ID="LinkButton2" runat="server" CommandName="delete" CausesValidation="False"  OnClientClick="return confirm('确认要删除吗?');">删除</asp:LinkButton>
      protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                int id=Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value));
               //删除
                BindData();
            }
      

  4.   

    怀疑 GridView1.DataKeys[e.RowIndex].Value=-1
      

  5.   

     GridView1.DataKeys[e.RowIndex].Value有可能等于-1