Jammer
Jammer

Reputation: 2410

Gridview multiple delete

I am trying to delete multiple rows from a GridView but I am struggling to find out if a check box was checked.

At the moment my code isn't attempting to delete anything just check which checkboxes were checked and which weren't. My attempt isn't showing any checkboxes as being checked and also seems to loop though the GridView rows twice!

.ASPX

<asp:GridView ID="gvImages" DataKeyNames="id" runat="server" AutoGenerateColumns="False" BorderWidth="0px" GridLines="None">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="imageId" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:ImageField DataImageUrlField="image_path" DataImageUrlFormatString="~/admin/images/{0}"></asp:ImageField>
            <asp:BoundField DataField="id" />
        </Columns>
    </asp:GridView>
    <asp:Button
       ID="btnMultipleRowDelete"
       OnClick="btnMultipleRowDelete_Click"
       runat="server"
       Text="Delete Rows" />

CODE BEHIND

    Protected Sub btnMultipleRowDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnMultipleRowDelete.Click

    ' Looping through all the rows in the GridView
    For Each row As GridViewRow In gvImages.Rows

        Dim checkbox As CheckBox = CType(row.FindControl("imageId"), CheckBox)
        Dim rowID As Integer = Convert.ToInt32(gvImages.DataKeys(row.RowIndex).Value)

        'Check if the checkbox is checked.
        If checkbox.Checked Then

            Response.Write("Deleted" & rowID & "<br />")

        Else

            Response.Write("Not deleted: " & rowID & "<br />")

        End If

    Next row

End Sub

Thanks for any help. J.

Upvotes: 1

Views: 1390

Answers (1)

Curtis
Curtis

Reputation: 103348

Are you binding your GridView on Page_Load?

Make sure you have If Not Page.IsPostBack Then around your binding:

If Not Page.IsPostBack Then
  BindGridViewHere
End If

Otherwise, when the button is triggered, the gridview will be rebound, meaning all checkboxes are reset!

Upvotes: 1

Related Questions