• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 212
  • Last Modified:

How to Provide a Delete Confirmation in GridView Control When Delete is Clicked.

Greetings;

In Visual Studio 2003 VB.NET for ASP.NET when I wanted to associate a JavaScript alert when a user clicked the delete button (or delete link) to confirm the user really wanted to delete the row in a datagrid control I used the following example in the ItemDataBound event in the codebehind file:

----------------------------------------- BEGIN

      Private Sub dlContact_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlContact.ItemDataBound
            Dim btnDelete As Button

            If e.Item.ItemType = ListItemType.Header Or _
             e.Item.ItemType = ListItemType.Footer Then
                  Exit Sub
            End If

            btnDelete = CType(e.Item.FindControl("btnDelete"), Button)
            If btnDelete Is Nothing Then
                  Exit Sub
            End If
            btnDelete.Attributes("onclick") = "javascript:return confirm('Are you sure you want to delete this contact?');"
      End Sub

----------------------------------------- END

In Visual Studio 2005 VB.NET for ASP.NET when I use the <asp:CommandField> tag to create Edit, Select, Delete buttons (or links) what is the equivalent method of providing a confirmation when the user clicks the delete button?


Much thanks ... David
0
David Bach
Asked:
David Bach
1 Solution
 
strickddCommented:
It should still be a matter of adding the "OnClick" attribute to the button by the buttons ID in the code-behind after the data is bound.
0
 
kraffayCommented:
I would highly recommend converting your CommandFields to TemplateFields.  CommandFields cause redundant post back and greatly slow down gridview performance.  

Here I have a delete button:

 <asp:TemplateField>
                                    <HeaderTemplate>
                                        Delete
                                    </HeaderTemplate>
                                    <ItemStyle HorizontalAlign="Left" VerticalAlign="Bottom" />
                                    <ItemTemplate>
                                        <asp:ImageButton ImageAlign="AbsBottom" Height="15px" ImageUrl="images/icon-delete.gif"
                                            ID="btnDelete" runat="server" CommandArgument="<%# Bind('UserName')%>" CausesValidation="False" />
                                    </ItemTemplate>
                                </asp:TemplateField>

At run time, I attached the alert to the delete button's click event:

    protected void grdUsers_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            ImageButton btnDelete = (ImageButton)e.Row.FindControl("btnDelete");
            btnDelete.Attributes.Add("onclick", "return confirm('Are you sure you want to delete this user?');");
        }
    }
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now