如何把Popup特性从宝玉的论坛代码中拆分出来呢?
编写者:郑昀
时间:20050128
我们要在后台向IE前台发送请求,让浏览器弹出Popup一个,来达到提示用户的效果,而不是做一个定时器不断地去后台取数据提示论坛新帖子的方式。
这样,从CnForums1[1].2源代码中取出以下文件:
l PopupManager.cs(去除对ASPnetForum的引用代码);
l SkinnedForumWebControl.cs(去除对ASPnetForum的引用代码);
l PopupManager.js;
l Skins目录下的PopupManager.ascx;
l CSS目录下的popupManager.CSS;
l images目录下的所有图片;
把这些文件加入你的工程中。
在你的default.ASPx页面中加入:
<link rel='stylesheet' type='text/CSS' href='CSS/popupManager.CSS'>
<script src=../../"Scripts/PopupManager.js" type="text/javascript"></script>
和
<exp:PopupManager runat="server" ID="Popupmanager1" Visible="False" EnableViewState="False" />
然后,在default.ASPx.cs中加入如下代码:
protected Linktone.ToneReports.Components.PopupManager Popupmanager1;
/// <summary>
/// 通过这个函数,设定超越IE窗口的Popup窗口的诸多属性
/// </summary>
/// <param name="sender">
/// 发送体
/// </param>
/// <param name="sTitle">Popup信息的完整信息</param>
/// <param name="sInfo">Popup信息的简短提示</param>
///
private void Popup(
string sTitle,
string sInfo)
{
Popupmanager1.Visible = true;
//编辑须执行的脚本语言
string javascript = @"<script language = javascript>try{var popupManager = new PopupManager();" +
"var p = popupManager.AddPopup('popupWin', '" + sTitle +
"', 'images/popup_icon_Post.gif', '" + sInfo + "', ShowPost);p.PostID = '1';p.URL = nodeURL.text;}catch(e){}" +
"function ShowPost(popup){}</script>";
//执行
this.Page.RegisterStartupScript("",javascript);
}
之后你就可以在ASPx.cs中通过调用以下代码让浏览器弹出对话框了:
/// 这是一个只有IE5.5才支持的特性,超越IE自身窗体的弹出窗口
Popup("歌手查询完毕", "敬请察看结果:彩铃数据分析系统");
出来的效果如下所示:
点击页面上的按钮,将弹出一个窗口,只弹出一遍: