Soumya
Soumya

Reputation: 123

How to get the response from Confirm box in the code behind

I am new to asp.net/C# .I am trying to create a web application.

Below is my requirement.

I am trying to save a record on button click. Before saving the record,I will be checking if that record exist in the database or not(in the code behind).If it exist,then I need to show an alert to the user as "Record already exist.Do you want to proceed?"When the user press 'Yes',I need to continue my save for the record in the code ,else I just need to exit the save process.

//......code for checking the existence of the record    
if (check == true)
{            
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", " confirm('Record already exist.Do you want to proceed?');", true);
}
//

The above code shows me confirm box with 'OK' and 'Cancel' buttons. My questions are

  1. how can I make it 'Yes' or 'No' in the confirm dialog?
  2. After the user press 'Yes'/'No',how can I catch the response(yes/no),and proceed with rest of my program?

I have searched for this a lot.But couldn't get a proper answer.Please help me on this.

Upvotes: 5

Views: 32432

Answers (5)

Yograj Gupta
Yograj Gupta

Reputation: 9869

You can do this in many ways:

One is place a button on the page, make its display:none and when confirm is true, trigger its click with js.

Like in aspx

<asp:Button runat="server" ID="btnSaveData" 
     onClick="btnSaveData_Click" style="display:none;" />

in client side make a js function for calling confirmation dialog box, like

function ConfirmSave()
{
   if(confirm('Record already exist.Do you want to proceed?')
   {
       jQuery("[ID$=btnSaveData]").click();
   }

}

in Code Behind

Your code check in some event handler

if (check == true)
{            
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", 
      "ConfirmSave();", true);
}

bthSaveData click handler for saving data.

protected void btnSaveData_Click(object sender, EventArgs e)
{
 // Code for your saving.
}

Upvotes: 3

Abhijeetchindhe
Abhijeetchindhe

Reputation: 400

Use AJAX toolkit with modalpopupextender.

   <cc1:modalpopupextender id="ModalPopupExtender1" runat="server"  cancelcontrolid="ButtonNo" okcontrolid="ButtonYes" popupcontrolid="PNL" targetcontrolid="UrSaveButton">
   </cc1:modalpopupextender>  
   <asp:Panel ID="PNL" runat="server" Style="display: none; width: 200px; background-color: #000099; border-width: 2px; border-color: Black; border-style: solid; padding: 20px;">
     <span style="color: White; font-weight: bold">Record already exist.Do you want to proceed?</span>
       <br />
        <br />
            <div style="text-align: right;">
                <asp:Button CssClass="tbl_blue" ID="ButtonYes" runat="server" CausesValidation="false" EnableTheming="false" Text="YES" />
                <asp:Button CssClass="tbl_blue" ID="ButtonNo" runat="server" CausesValidation="false" EnableTheming="false" Text="NO" />
             </div>
  </asp:Panel>

You can Customize it as you want.

Upvotes: 0

Shant
Shant

Reputation: 237

One of the workaround can be to store the TRUE / FALSE flag in control that has the attribute runat="server", depending on the choice made by user (Yes / No). And then at the backend, you can check for the value of this control.

Upvotes: 0

Umesh
Umesh

Reputation: 2732

You can use confirm box in JS like this

var ans = confirm ('Record already exist.Do you want to proceed?');
if(ans==true)
{
}
else
{
}

Secondly, to get the response in code behind, you can store the Yes/No value into a hidden field e.g.

document.getElementById('<%= hiddenField.ClientID %>').value = ans;

Upvotes: 2

Ajeet Pratap Maurya
Ajeet Pratap Maurya

Reputation: 4254

you can take a look at the this link http://www.codeproject.com/Articles/8173/A-Simple-ASP-NET-Server-Control-Message-Box-Confir.

And more over you can create your own custom confirmation box.

Upvotes: 0

Related Questions