Link to home
Start Free TrialLog in
Avatar of itproem
itproem

asked on

How to open new confirmation window (not just JS pop up) on button click, and if user response is true run the button click event code

Hello Experts,
I 've already opened the same question here
https://www.experts-exchange.com/questions/22862384/How-to-get-response-to-the-window-opener-from-the-confirmation-window.html
and the Expert doesn't know C#, so I didn't get full reply. But this is urgent, and please probably someone who is Guru in both: C# and JavaScript, or someone who has solution for my question which has been tested.
The problem is:
I have MainSite.aspx and the button btnOK that has btnOK_Click event. On the btnOK click event I want to open new web site (ConfirmationWindow.aspx) by passing a few input parameters from the main site. For example with one parameter:
           this.btnOK.OnClientClick = "window.open('WindowConfirmation.aspx?Parameter1=" + this.Variable1 + "')";
and  btnOK_Click event which is called as
           OnClick="btnOK_Click".

ConfirmationWindow.aspx contains gridview which will be bound with the stored procedures result according to the input parameters values from the MainSite.aspx and two buttons btnYES, and btnNO.

The question is, How can I get the response from the user click on btnYES or btnNO inside ConfirmationWindow.aspx back to my MainSite, and if the response is YES to finish MainSite-btnOK_Click . If response is NO then just close the ConfirmationWindow.aspx. And yes, after pressing one of the buttons either Yes or No, ConfirmationWindow.aspx should be automatically closed.
It would be nice to call return Java Script function which can return true if the user press btnYes, but question is how to do this ?
Also, is ti possible to prevent opening of more then one ConfirmationWindow.aspx. If user press once, ConfirmationWindow.aspx will open, but I want to prevent opening of the ConfirmationWindow.aspx again if it is already open.
I thinks that here is the main problem how to wait for the user response and then return true value which will in that case call the "btnOK_Click" event proc.

Many thanks !
ASKER CERTIFIED SOLUTION
Avatar of frin
frin
Flag of Slovenia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You can use the showModalDialog() function instead of open() function. This way, the user will not be able to interact with the opener window until the popup is closed.

_______________

  Nayer Naguib
Avatar of itproem
itproem

ASKER

I think the solution showModalDialog() is the answer for me if you have some exaple how I can implement this in my case by using C# and JavaScript. And I don't need anymore response from the child to parent, because I will move my C# function from parent to child, and if it is Yes it should run my C# function in the child window.This makes my life easier :)

Now, the question is how to call window.showModalDialog() from the parent site on button click ?
 If I simply change open () to showModalDialog() it doesn't work. Probably, I need different parameters.

Also, I have to pass parameters from the parent site to child site in the showModalDialog(), because I want to run C# function in the child site if the answer is YES. I will add on child:
<input type="button" onclick="btnYes_Click" value="Yes">
<input type="button" onclick="proceedNo()" value="No">
protected void btnYES_Click(object sender, EventArgs e)
{
.. My Code which is calling stored procedure in DB and using parameters from the parent site ...
....
        Response.Write("<script language=javascript>");
        Response.Write("window.close()");
        Response.Write("</script>");
}

On parent window I need to change this
           this.btnOK.OnClientClick = "window.open('WindowConfirmation.aspx?Parameter1=" + this.Variable1 + "')";
to the window.showModalDialog(...)

Thanks a lot !



You can find the description of the parameters passed to showModalDialog() along with an example on the following page:

  http://msdn2.microsoft.com/en-us/library/ms536759.aspx

_______________

  Nayer Naguib