INDEX WAS OUT OF RANGE IN GRID ROW COMMAND

Jeet Verma

Total Post:110

Points:776
Posted by  Jeet Verma
 1111  View(s)
Ratings:
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">

            <Columns>

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

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

                <asp:TemplateField HeaderText="Edit">

                    <ItemTemplate>

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

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

                    </ItemTemplate>

                </asp:TemplateField>

                <asp:TemplateField HeaderText="Delete">

                    <ItemTemplate>

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

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

                    </ItemTemplate>

                </asp:TemplateField>

            </Columns>

            <PagerSettings Mode="Numeric" />

        </asp:GridView>

 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. Sumit Kesarwani

    Post:378

    Points:2694
    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

    Change

    CommandArgument='<%#Eval("LangId")%>'

    To

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

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!