ASP.NET 仿MSN Messenger Alert的弹出窗口控件

浏览:36日期:2023-04-11
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属性中的新页面.;生成的<A>标签的target属性也是可以改变的.;生成的代码是这个样子的:;<a;href="[Link]";target="[LinkTarget]">Link..</a>,;因此得当心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;elementpopupAnchor.LinkedControl='spanReopen'//;Show;popupWin;when;eventoccurspopupAnchor.PopupToShow='popupWin'//;Popup;win;isvisible;..popupWin.Visible=true//;..;and;will;be;displayed;when;page;isloadedpopupWin.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;elementpopupAnchor.LinkedControl='spanReopen'//;Show;popupWin;when;eventoccurspopupAnchor.PopupToShow='popupWin'//;Popup;win;isvisible;..popupWin.Visible=true//;..;and;will;be;displayed;when;page;isloadedpopupWin.AutoShow=true以前的版本在运行时动态创建此控件有bug,最新版本已经修正了,下面是运行时创建PopupWindow和PopupWinAnchor控件的示例.;当用户点击spanReopen元素后,用JavaScript会创建并显示一个弹出窗口.(这个示例假定页面上有个spanReopen的元素)//;Create;popup;window;and;popup;win;anchor;control;(inPage_Load)PopupWin;popupWin=newPopupWin();PopupWinAnchor;popupAnchor=newPopupWinAnchor();//;Add;controlsto;pageplaceHolder.Controls.Add(popupAnchor);placeHolder.Controls.Add(popupWin);//;Set;anchor;propertiespopupAnchor.PopupToShow=popupWin.ClientID;popupAnchor.LinkedControl='spanReopen'popupAnchor.HandledEvent='onclick'//;Set;popup;win;propertiespopupWin.ActionType=EeekSoft.Web.PopupAction.MessageWindow;popupWin.Title='Thisispopup'popupWin.Message='Message;displayed;inpopup'//;Show;popuppopupWin.Visible=truepopupWin.AutoShow=false
相关文章: