Solved

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

Posted on 2006-11-20
2
201 Views
Last Modified: 2008-02-01
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
Comment
Question by:David Bach
2 Comments
 
LVL 28

Expert Comment

by:strickdd
ID: 17981873
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
 
LVL 9

Accepted Solution

by:
kraffay earned 500 total points
ID: 17981958
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

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
I have developed many web applications with asp & asp.net and to add and use a dropdownlist was always a very simple task, but with the new asp.net, setting the value is a bit tricky and its not similar to the old traditional method. So in this a…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question