ASP.net 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。解决方法

问题

索引超出范围。必须为非负值并小于集合大小。
参数名: index

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误:

行 68:     {
行 69:         GridViewRow row = GridView1.Rows[e.RowIndex];
行 70:         string name = GridView1.DataKeys[e.RowIndex].Values[0].ToString().Trim();
行 71: 

解决方法

 
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" DataKeyNames="name"
                    AutoGenerateColumns="False" DataSourceID="TrackingDS" OnRowDataBound="GridView1_RowDataBound"
                    OnRowDeleting="GridView1_RowDeleting" 
                    ondatabinding="GridView1_DataBinding">
       <Columns>
            <asp:BoundField DataField="name" HeaderText="name" ReadOnly="True" SortExpression="name" />
            <asp:CommandField ShowDeleteButton="True" />
       </Columns>
 </asp:GridView>

关键是要加上:DataKeyNames这个属性。
   

你可能感兴趣的:(ASP.net 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。解决方法)