Please can someone really tell me what's wrong with this code that I'm having this error:
System.ArgumentOutOfRangeException was caught
Message=Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
int index = Int32.Parse(e.CommandArgument.ToString());
long Id = long.Parse(gvGrid.DataKeys[index][0].ToString());
var stuobj = ctx.stockUnits.SingleOrDefault(st => st.ID == Id);
if (stuobj != null)
this.txtStockUnit.Text = stuobj.NAME;
ViewState["Id"] = Id;
In the mark up (Designer source) this is what I have:
<asp:GridView ID="gvGrid" runat="server"
OnPageIndexChanging = "gvGrid_PageIndexChanging" AutoGenerateColumns="False"
BackColor="White" CssClass = "mGrid" DataKeyNames ="Id,NAME"
OnRowCommand="gvGrid_RowCommand"
...<Columns>
<asp:BoundField DataField="NAME" HeaderText="STOCK UNIT NAME" HeaderStyle-CssClass="Headerhodder"
FooterStyle-CssClass="Headerhodder" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"
ItemStyle-VerticalAlign="Middle" />
<asp:TemplateField HeaderStyle-CssClass="Headerhodder" FooterStyle-CssClass="Headerhodder"
ItemStyle-HorizontalAlign="Center" ItemStyle-Width="50px"
ItemStyle-VerticalAlign="Middle">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" ImageUrl="~/img/pencil.png" CommandName="EditStockUnit" CommandArgument ='<%# Container.DataItemIndex %> '
AlternateText="Edit Stock Unit" ToolTip="Edit Stock unit record" CausesValidation="false" />
Is there anything missing here? Thanks for the assistance.