slolife
slolife

Reputation: 19870

Prevent hiding of ModalPopupExtender when ok or cancel is clicked

I am using an ASP.NET ModalPopupExtender on a page and would like to prevent the dialog from hiding when the user presses the ok button in certain conditions. But I can't seem to find a way.

What I am looking for is something like this

ajax:ModalPopupExtender
...
OnOkScript="return confirm('You sure?')"
...

if confirm is false, then the modal dialog doesn't disappear.

Upvotes: 0

Views: 3825

Answers (2)

Richard Ev
Richard Ev

Reputation: 54167

The following JavaScript function will allow you to achieve this:

function conditionalHide(clientID)
{
    if (confirm('You sure?'))
    {
        $find(clientID).hide();
    }
}

You can wire this up to your asp:Button control in the Page_Load event of your page

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        btnOK.OnClientClick = string.Format("conditionalHide('{0}'); return false;",
            panPopup_ModalPopupExtender.ClientID);
    }
}

Some notes:

  • panPopup_ModalPopupExtender is your ModalPopupExtender
  • The return false; prevents a postback from occurring when the user clicks the button
  • You could hard-code the ClientID of the ModalPopupExtender, but this introduces an (additional) maintainance headache. The approach shown is the best one that I've found to alleviate this overhead

Upvotes: 1

Mitchel Sellers
Mitchel Sellers

Reputation: 63136

From my understanding in your specific situation you would not wire up the button, and just wire up a script to handle the conditional, then you can close it via JS.

Upvotes: 1

Related Questions