Index was out of range in grid row command

Total Post:110

 1487  View(s)
Rate this:

I'd like to reach gridView a cell's value.But it gives the error is 'Index was out of range. Must be non-negative and less than the size of the collection. grid row command'

Can somebody help me?

 <asp:GridView ID="grdList" runat="server" AutoGenerateColumns="False"  GridLines="None"

            PageSize="5" AllowPaging="True" OnPageIndexChanging="Grd_Allergys_PageIndexChanging"

            OnRowCommand="grdList_RowCommand" OnRowDeleting="grdList_RowDeleting" OnRowEditing="grdList_RowEditing">


                <asp:BoundField DataField="LangId" HeaderText="LangId" />

                <asp:BoundField DataField="LangName" HeaderText="LangName" />

                <asp:TemplateField HeaderText="Edit">


                        <asp:ImageButton ID="imgBtnEdit" runat="server" CommandName="Edit" CommandArgument='<%#Eval("LangId") %>'

                            ImageUrl="~/Image/edit.jpg" />



                <asp:TemplateField HeaderText="Delete">


                        <asp:ImageButton ID="imgBtnDelete" runat="server" CommandName="Delete" CommandArgument='<%#Eval("LangId")%>'

                            ImageUrl="~/Image/delete_icon.gif" OnClientClick="return confirm('Do you want to continue ?')" />




            <PagerSettings Mode="Numeric" />


 protected void grdList_RowCommand(object sender, GridViewCommandEventArgs e)


        DBDataContext dc = new DBDataContext();

        if (e.CommandName == "Edit")


           int rowIndex = int.Parse(e.CommandArgument.ToString());

           string LangName = grdList.DataKeys[rowIndex]["LangName"].ToString();                             



  1. Post:378

    Re: Index was out of range in grid row command

    Hi Jeet, 

    You are assigning LangId and assuming it as row index in command argument. If id is greater then number of rows then you should get out of range index




    CommandArgument='<%# ((GridViewRow) Container).RowIndex %>'