Search code examples
asp.netvb.netgridviewrowdeleting

How to access values of row being deleted in RowDeleting event


I am trying to save a little bit of information before I delete it from the database. I'm using an asp gridview. I'm trying to retrieve the values from the row being deleted with the RowDeleting event. However, I've been extremely unsuccessful.

Protected Sub gv1_RowDeleting(sender As Object, e As System.EventArgs) Handles   gv1.RowDeleting
   Dim a As String = gv1.Columns(0).ToString
   Dim b As String = gv1.SelectedRow.RowIndex.ToString
   Dim c As String = gv1.Rows(a).Cells(0).Text
End Sub

a ends up being the header row first column. b errors out. I've tried a bunch of different things and can't come up with a row index. I would have figured this event would access only the row being deleted. Here is my gridview declaration:

<asp:GridView ID="gv1" runat="server" AllowSorting="True" AutoGenerateColumns="False" EnableViewState="false"
            DataSourceID="ds1" EmptyDataText="NO ROWS FOUND" CssClass="gridView" DataKeyNames="id" GridLines="None">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="ID" SortExpression="id" />
                <asp:BoundField DataField="totalsd" HeaderText="SD" SortExpression="totalsd" />
                <asp:BoundField DataField="freesd" HeaderText="FREE" SortExpression="freesd" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Button ID="deleteButton" runat="server" CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this record?');" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

Solution

  • Declare e as System.Web.UI.WebControls.GridViewDeleteEventArgs. You can then get the row index with e.RowIndex.