我是ASP.NET的新手
我想实现每5分钟调用弹出窗口的页面。
在app_code中,我实现了一个调用弹出窗口的类。
我想每隔5分钟调用一次popup,所以每次都用随机方法更改RegisterStartupScript的键。
public class Ad
{
...blah blah...
public static void CallPopup(Page pageInstance)
{
Random r = new Random();
string key = "popupScript" + r.Next();
ClientScriptManager scriptManager = pageInstance.ClientScript;
string script = "<script>window.open('../PopUp.aspx', 'popup_window',
'width=400, height=300, scrollbars=yes');</script>";
scriptManager.RegisterStartupScript(pageInstance.GetType(), key, script);
}
...blah blah...
}
并在像这样的.aspx.cs中使用它
public partial class WebAdPage: System.Web.UI.Page
{
..blah blah..
protected void Timer1_Tick(object sender, EventArgs e)
{
adObj.CallPopup(this);
}
.. blah blah ..
}
但是调用弹出窗口只是第一次工作。
它不会每5分钟工作一次。
我的代码出了什么问题?
请给我一些建议或链接。
提前谢谢。
答案 0 :(得分:1)
请查看以下内容:参考:http://forums.asp.net/t/1563462.aspx
function OpenWindow()
{
// write open popup window code.
}
setinterval("OpenWindow();", 300000);
it will open window every 5 min
and on popup window you can also call the js function
function CloseWindow()
{
// write self close.
}
setTimeout("CloseWindow();", 60000); // one minute.
答案 1 :(得分:0)
我为自己找到了解决方案。
此问题的关键是在何处添加脚本。
在我的情况下,当更新面板自行更新时,请调用弹出窗口。
要实现此功能,请将脚本附加到updatePanel部件。
如何做到这一点如下。
使用UpdatePanel控件设置参数,并将UpdatePanel控件的类型设置为RegisterStartupScript。
string script = "<script>window.open('../PopUp.aspx', 'popup_window',
'width=400, height=300, scrollbars=yes');</script>";
ScriptManager.RegisterStartupScript(updateObj, updateObj.GetType(), key, script, false);
它会很好用。
http://helpondesk.blogspot.kr/2008/11/how-to-register-client-script-inside.html