[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1325
  • Last Modified:

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
http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_22862384.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 !
0
itproem
Asked:
itproem
  • 2
1 Solution
 
frinCommented:
On parent window use code like this:

<script language="JavaScript" type="text/javascript">
function proceed() {
  confirmation = window.open('confirmation.aspx', 'confirmation', 'true');
}
function yesClicked() {
  document.getElementById('contents').innerHTML = 'Yes clicked.';
}
</script>
<input type="button" onclick="proceed()" value="Confirmation">
<div id="contents"></div>

On child use this:

<script language="JavaScript" type="text/javascript">
function proceedYes() {
  window.opener.yesClicked();
  window.close();
}
function proceedNo() {
  window.close();
}
</script>
<input type="button" onclick="proceedYes()" value="Yes"> <input type="button" onclick="proceedNo()" value="No">
0
 
nayernaguibCommented:
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
0
 
itproemAuthor Commented:
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 !



0
 
nayernaguibCommented:
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
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now