Solved

Displaying "Are you sure?" alert before firing a server-side button

Posted on 2004-09-14
13
279 Views
Last Modified: 2012-08-13
I have a "Delete Record" button. I want to give the user a chance to confirm his intentions before deleting the record, and would like to display a message box with "Are you sure?" and OK/Cancel. If the user presses OK the delete button posts back to the server, otherwise no further action is taken.

I know you can use the onclick event in hyperlinks, returning 'false' prevents the redirection. How do I do it with a server-side ASP.NET button?

I tried putting the following in the PageLoad event, but it didn't even display the message:

    cmdDelete.Attributes("onclick") = "javascript:msgbox('Delete this record?')"
0
Comment
Question by:crescendo
  • 4
  • 3
  • 3
  • +2
13 Comments
 
LVL 18

Accepted Solution

by:
DotNetLover_Baan earned 250 total points
ID: 12054021
0
 
LVL 18

Expert Comment

by:DotNetLover_Baan
ID: 12054026
0
 
LVL 35

Expert Comment

by:YZlat
ID: 12054192
if (confirm("'Delete this record?")) {alert("Deleting..")}
else{exit;};
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
LVL 35

Expert Comment

by:YZlat
ID: 12054233
try this:

cmdDelete.Attributes("onclick") = "javascript:if (confirm('Delete this record?')) {alert('Deleting..')}else{exit;};"
0
 
LVL 26

Expert Comment

by:Rejojohny
ID: 12054246
assuming ur button name is "butDelete"
.vb file
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        butDelete.Attributes.Add("Language", "javascript")
        butDelete.Attributes.Add("onclick", "return CheckDelete()")
End Sub

.aspx file
<script language="vbscript" id="Scriptfunction">
function CheckDelete()
   if msgbox("Are you sure you want to delete this detail?", vbquestion + vbyesno,"MFD") = vbno then
      CheckDelete = false
   end if
end function
</script>
0
 
LVL 9

Author Comment

by:crescendo
ID: 12054256
Baan:

I tried both ways, but the message box is not being fired. Any ideas? Here is my code:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        lblMsg.Text = " "

        cmdDelete.Attributes.Add("onclick", "javascript:return confirm('Delete this record?')")

        If Not Page.IsPostBack Then
0
 
LVL 9

Author Comment

by:crescendo
ID: 12054271
I noticed that in the articles, the button is a LinkButton, mine is a straight ASP.NET button control. Does that make a difference?
0
 
LVL 26

Expert Comment

by:Rejojohny
ID: 12054306
have u tried what i suggested?
0
 
LVL 9

Author Comment

by:crescendo
ID: 12054380
Baan

I solved it. I had "CausesValidation = True" on the button. That was inserting its own javascript into mine, and screwing it up. Works fine now.

Thanks to all.

0
 
LVL 25

Expert Comment

by:nauman_ahmed
ID: 12054414
1. Add the following script in your .aspx page:
<script language="javascript">
function ConfirmDelete()
{
   var deleteRecord = confirm("Are you sure you want to delete the selected record?");
  if (deleteRecord == false)
  {
    return false;
  }
}
</script>


2. Add the following attribute to the link button:


linkButton.Attributes.Add("OnClick","javascript: return ConfirmDelete();");

HTH, Nauman.
0
 
LVL 18

Expert Comment

by:DotNetLover_Baan
ID: 12054427
That shouldn't make any difference. Put a ";" at the end..
cmdDelete.Attributes.Add("onclick", "javascript:return confirm('Delete this record?');")
                                                                                                                    ~~~~  here
0
 
LVL 9

Author Comment

by:crescendo
ID: 12054775
Hi

Yes, I can see that a semi-colon would help, however, the code that comes next is the test for client-side validation. If I needed to validate the fields before proceeding with the delete (which I don't) then it should validate *before* it asks the user. However, it's a non-issue as I'm not concerned in this case whether the user has entered any other data.

It's an interesting point, though. I can foresee many circumstances where you might want to enter data and then prompt before processing it.
0
 
LVL 26

Expert Comment

by:Rejojohny
ID: 12054891
>>I had "CausesValidation = True" on the button
oh! so u had some validation controls set in the page? if s, then it would create the onlick event for the button to call the validators ...
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

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

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

815 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

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now