ASP.NET 弹出窗口控件是MSN Messenger 提醒(alert)的网页版,通过定义颜色风格可以修改图形的外观。支持拖放操作。一个很重要的特性是支持绝大多数浏览器。在最新版本的Mozilla,IE和Opera下测试通过,在不支持filter的浏览器中UI会有些差异。
控件的很多属性可直接使用HTML代码,以实现图片等丰富的表现形式。ASP.NET 弹出窗口控件PopupWindow,可用于通知用户重要的信息,比如在web email客户端通知用户新消息/信件。当用户在系统内交流时需要通知他有人找他聊天。 用此控件的好处是不占网页的空间又能醒目得引起用户的注意,另外可用于显示广告信息。
锚定弹出控件PopupWinAnchor,可以让弹出窗口控件更快,页面加载更少.比如我们可以用以实现表单填写的即时帮助。当textbox收到输入焦点时即显示动态帮助。 另外,可以用来在每个textbox后加一个button,当用户点击button时显示弹出窗口。
控件有两个事件: 点击弹出窗口上链接时的事件LinkClicked,点击右上角关闭按钮时的PopupClosed。根据ActionType属性(如下)的不同,有三种处理事件的方式:
(1)MessageWindow (默认) - 控件会打开新的浏览器窗口,其中显示Text属性的内容。
(2)OpenLink - 控件可以执行JavaScript操作或打开Link属性中的新页面,生成的标签的target属性也是可以改变的。生成的代码是这个样子的: Link.., 因此得当心Link属性中不要使用引号。LinkTarget非空时才会加上Target属性。
(3)RaiseEvents - 控件触发服务器端的 LinkClicked 或 PopupClosed 事件
在页面中使用此控件非常简单。VS.NET中,只需要在工具箱中用"添加删除项"来选中控件的dll文件,然后从工具箱中把该控件拖放页面中。
设计器:
控件有良好的设计时支持,我们可以更改所有属性,Action类别中,我们可以定义当用户点击链接和关闭窗口时控件的行为,Text和Design类别中,我们可以修改控件的外表和显示的消息.在Behavior中,我们可以改变时间间隔(何时显示/隐藏弹出窗口),AutoShow属性指控件是否在页面加载后即显示,DragDrop属性为真时,用户可以在页面中拖放控件的位置。 如果我们把ActionType 设为 MessageWindow,Window类别可以用来改变显示窗口的属性。Layout类别中的属性可以用来控制位置(从窗口左下角或右下角的位移)。
代码
下面的代码显示了如何改变一些属性并显示控件。
Popup.aspx
| <%@ Register TagPrefix="cc1" Namespace="EeekSoft.Web" Assembly="EeekSoft.Web.PopupWin" %> <cc1:popupwin id="popupWin" runat="server" visible="False" colorstyle="Blue" width="230px" height="100px" dockmode="BottomLeft" windowscroll="False" windowsize="300, 200"></cc1:popupwin> |
Anchor.aspx.cs
| // Handle onclick event .. popupAnchor.HandledEvent="onclick"; // .. of spanReopen element popupAnchor.LinkedControl="spanReopen"; // Show popupWin when event occurs popupAnchor.PopupToShow="popupWin"; // Popup win is visible .. popupWin.Visible=true; // .. and will be displayed when page is loaded popupWin.AutoShow=true; |
与加入一个弹出窗口控件类似,设计时我们可以把锚定控件加入到页面中,从选择一个已经存在的服务器端控件或填入其他元素的ID到 LinkedControl属性, 然后选择想绑定的客户端事件HandledEvent。如果只是想再打开弹出窗口,不需劳神,只要让弹出控件在弹出窗口中可见即可。如果不想在页面加载时就显示弹出控件, 得把AutoShow置为false,这样只有在发生绑定的特定事件时才会显示.要改变文字锚定弹出控件的文字,需把属性ChangeTexts设为 true。
代码:
下面的代码显示了如何锚定弹出控件来打开曾关闭的弹出控件
Anchor.aspx
| <%@ Register TagPrefix="cc1" Namespace="EeekSoft.Web" Assembly="EeekSoft.Web.PopupWin" %> <cc1:popupwin id="popupWin" runat="server" visible="False" colorstyle="Blue" width="230px" height="100px" dockmode="BottomLeft" windowscroll="False" windowsize="300, 200"></cc1:popupwin> <cc1:popupwinanchor id="popupAnchor" runat="server" changetexts="False"></cc1:popupwinanchor> |
Anchor.aspx.cs
| // Handle onclick event .. popupAnchor.HandledEvent="onclick"; // .. of spanReopen element popupAnchor.LinkedControl="spanReopen"; // Show popupWin when event occurs popupAnchor.PopupToShow="popupWin"; // Popup win is visible .. popupWin.Visible=true; // .. and will be displayed when page is loaded popupWin.AutoShow=true; |
以前的版本在运行时动态创建此控件有bug,最新版本已经修正了,下面是运行时创建PopupWindow和PopupWinAnchor控件的示例. 当用户点击spanReopen元素后,用JavaScript会创建并显示一个弹出窗口.(这个示例假定页面上有个spanReopen的元素)
| // Create popup window and popup win anchor control (in Page_Load) PopupWin popupWin=new PopupWin(); PopupWinAnchor popupAnchor=new PopupWinAnchor(); // Add controls to page placeHolder.Controls.Add(popupAnchor); placeHolder.Controls.Add(popupWin); // Set anchor properties popupAnchor.PopupToShow=popupWin.ClientID; popupAnchor.LinkedControl="spanReopen"; popupAnchor.HandledEvent="onclick"; // Set popup win properties popupWin.ActionType=EeekSoft.Web.PopupAction.MessageWindow; popupWin.Title="This is popup"; popupWin.Message="Message displayed in popup"; // Show popup popupWin.Visible=true; popupWin.AutoShow=false; |
相关专题
- .NET移动与嵌入式技术 (6213篇文章)
- MSN专题 (940篇文章)
- .NET开发手册 (5893篇文章)
- ASP.NET教程 (8727篇文章)
- MSN设置 (912篇文章)
- ASP.NET应用篇 (2752篇文章)
- Asp.NET大文件上传组件开发总结(二)---提取文 (65次浏览)
- SilverLight数据库访问示例 (61次浏览)
- ASP.NET系统用户权限设计 (53次浏览)
- ASP.Net2.0 数据绑定控件的优越性 (51次浏览)
- ASP.NET 2.0个性化配置(profile) (48次浏览)
- ASP.NET专家访谈之二:需要马上升级到VS2008 (43次浏览)
- VS2008 和.NET Framework3.5新功能及相关技术 (37次浏览)
- Web.config详解+asp.net优化方法 (34次浏览)
- 支持入门—ASP.NET常用技巧 (33次浏览)
- Asp.Net页面执行流程分析 (28次浏览)



