日期:2008-08-30  浏览次数:20973 次

如何把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("歌手查询完毕", "敬请察看结果:彩铃数据分析系统");




出来的效果如下所示:

点击页面上的按钮,将弹出一个窗口,只弹出一遍: