编者现在有大量的第三方控件存在这些控件包括了开发的各个方面但对于开发人员而言选择一个合适的控件却很难所以今天我们要推荐的是一个可以实现类似MSN弹出通知消息功能的控件
下载控件PopupWin
使用范例
MSN由个很好的功能就是每当你的MSN好友上线时MSN会自动在窗体托盘的右下角由下往上弹出消息框来通知你这个功能十分实用比如在论坛里当有新回复你的帖子时系统会自动弹出消息提示框又或者在一个电子政务的系统里当收到新的邮件或者工作单时可以使系统弹出消息框提示等等那么在ASPNET构建的Web应用中如何实现这样的功能呢?在本文中向读者推荐一个可以实现类似MSN的通知消息窗口效果的NET控件
首先让我们来看下该控件实现后的样子如下图
可以看到这个控件可以在各类型的浏览器中使用(IEMOZILLANETSCAPEOPERA)而且我们还可以自定义颜色还可以进行拖拉如下图
下面我介绍这个控件的一些使用方法
首先在该控件中有两种事件可以被激发Linkcliked事件(当消息框内的连接被点击时触发)和Popupclosed事件(当消息框窗口被关闭时触发)控件有三种方式对这些事件进行处理而actiontype属性的取值则决定了这三种方式
)messagewindow(默认)默认的弹出窗口方式将以设置好的Title属性和Text属性为标题和窗口内的文字说明
)openlink:此时控件允许当点击窗口内的文字链接时将以打开新窗口的方式打开该链接
)raiseevenst:当选择该属性时控件将会在服务端处理linkcliked事件和popupclosed事件
在使用该控件时是十分方便的只需要在visual 中使用add/remove toolbox功能选择该控件的dll之后该控件就会出现在工具箱中就可以拖拉的方式放到网页中去应用
单击该控件在其设计器中会发现有丰富的属性(详细的属性事件说明请参考该控件的文档)在设计器中的操作分类栏中可以指定控件如何处理当用户关闭窗口和点击窗口内的文字时打开的新链接在文字和设计分类栏中将可以设计弹出消息窗口的字体颜色布局(如设置是从左下角还是从右下角弹出)在行为分类栏中可以设置窗口弹出的弹出速度是否自动在页面加载后就弹出以及窗口在弹出多久后会自动关闭窗口是否可以设置为自由拖拉等等
下面举例通过代码说明如何使用
在popupaspx中
<! Popupaspx >
<%@ Register TagPrefix=cc Namespace=EeekSoftWeb
Assembly=EeekSoftWebPopupWin %>
<cc:popupwin id=popupWin runat=server visible=False
color width=px height=px dockmode=BottomLeft
windowscroll=False windowsize= ></cc:popupwin>
在codebehind代码中写入
// Popupaspxcs
//设置为默认的消息窗口
popupWinActionType=EeekSoftWebPopupActionMessageWindow;
//设置窗口的标题消息文字
popupWinTitle=This is popup;
popupWinMessage=<i>Message</i> displayed in popup;
popupWinText=Text to show in new window;
//设置颜色风格
popupWinColorStyle=EeekSoftWebPopupColorStyleGreen;
//设置窗口弹出和消失的时间
popupWinHideAfter=;
popupWinShowAfter=;
popupWinVisible=true;
在该控件的基础上我们再增强该控件的功能实现一个叫popupanchor的控件该控件可以动态检测客户端的事件比如在一个输入表单中每当你在文本框填完数据将鼠标的焦点转移到另外的文本框时会自动弹出消息提示框而且使用该控件还可以动态更改原先弹出窗口的标题和文字Popipanchor控件是配合popupwin控件使用的比如想重新打开已经弹出过的窗口框可以这样设置添加一个popipanchor控件设置popuptoshow属性指明要控制的是哪一个弹出消息框的窗口之后并可以设置相关的handledevent属性指明要击发的是什么样的事件(比如onfocusondblick)等如下图
用下面的的代码可以重新设置已经弹出过的消息窗口的标题文字并让其再次弹出
<! Anchoraspx >
<%@ Register TagPrefix=cc Namespace=EeekSoftWeb Assembly=EeekSoftWebPopupWin %>
<cc:popupwin id=popupWin runat=server visible=False
color width=px height=px dockmode=BottomLeft
windowscroll=False windowsize= >
</cc:popupwin>
<cc:popupwinanchor id=popupAnchor runat=server changetexts=False></cc:popupwinanchor>
<span id=spanreopen> Click here to reopen popup !</span>
codebehind文件中的代码如下
// Anchoraspxcs
// Handle onclick event
//设置其响应的事件为onclick
popupAnchorHandledEvent=onclick;
popupAnchorLinkedControl=spanReopen;
popupAnchorPopupToShow=popupWin;
popupWinVisible=true;
popupWinAutoShow=true;
则上面的代码可以实现当点击spanreopen区域时可以使已经弹出的消息窗口再次弹出
DEMO例子里演示了如何使用popupanchor控件如下图当点击第一个文本框时弹出窗口提示要输入文字当输入完第一个文本框的内容时将鼠标移动到第二个文本框时又会弹出第二个窗口
在本文提供的下载中提供了该控件的完整代码使用控件的范例工程和关于该控件的详细事件方法说明的CHM文件可以在 上运行通过