关闭弹出窗口后如何执行一组命令

时间:2018-10-30 13:16:43

标签: c# asp.net

单击页面时我在页面上有一个按钮,它将执行一组命令,然后打开一个弹出页面。

 protected void Button2_Click(object sender, EventArgs e)
        {
/*set of commands*/
 string arry = String.Join(",", ((string[])a1.ToArray(typeof(String))));
                        string url = "AreaGridValue.aspx?list="+ arry;
                        string s = "window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
                        ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
}

现在,我想在关闭弹出窗口后执行更多代码集,如何在不丢失父页面中的值的情况下执行该操作。

1 个答案:

答案 0 :(得分:1)

您可以将打开的弹出窗口命名为:

var popup = window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');

,然后使用setInterval()检查窗口是否关闭并运行其他代码:

var int = setInterval(function(){ if(popup.closed === true) { clearInterval(int); /*write your code here*/} } ,50);

我省略了将这些代码放在c#字符串中的部分,并将javascript部分写为c#部分中的新内容。

所以最终它将是这样的:

string url = "AreaGridValue.aspx?list="+ arry;
string s = "var popup = window.open('" + url + "', 'popup_window', 'width=300,height=100,left=100,top=100,resizable=yes');";
s += "var int = setInterval(function(){ if(popup.closed === true) { clearInterval(int); alert('popup closed');} } ,50);";
ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);

因此,当关闭弹出窗口时,将执行setInterval中的函数,并且在上面的示例中将显示一条警告,指出“弹出窗口已关闭”。