編者現在有大量的第三方控件存在這些控件包括了開發的各個方面但對於開發人員而言選擇一個合適的控件卻很難所以今天我們要推薦的是一個可以實現類似MSN彈出通知消息功能的控件
下載控件PopupWin
使用范例
MSN由個很好的功能就是每當你的MSN好友上線時MSN會自動在窗體托盤的右下角由下往上彈出消息框來通知你這個功能十分實用比如在論壇裡當有新回復你的帖子時系統會自動彈出消息提示框又或者在一個電子政務的系統裡當收到新的郵件或者工作單時可以使系統彈出消息框提示等等那麼在ASPNET構建的Web應用中如何實現這樣的功能呢?在本文中向讀者推薦一個可以實現類似MSN的通知消息窗口效果的NET控件
首先讓我們來看下該控件實現後的樣子如下圖
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111310182847.jpg)
可以看到這個控件可以在各類型的浏覽器中使用(IEMOZILLANETSCAPEOPERA)而且我們還可以自定義顏色還可以進行拖拉如下圖
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111310182845.jpg)
下面我介紹這個控件的一些使用方法
首先在該控件中有兩種事件可以被激發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)等如下圖
用下面的的代碼
可以重新設置已經彈出過的消息窗口的標題文字
並讓其再次彈出
<!
Anchor
aspx
>
<%@ Register TagPrefix=
cc
Namespace=
EeekSoft
Web
Assembly=
EeekSoft
Web
PopupWin
%>
<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>
code
behind文件中的代碼如下
// Anchor
aspx
cs
// Handle onclick event
//設置其響應的事件為onclick
popupAnchor
HandledEvent=
onclick
;
popupAnchor
LinkedControl=
spanReopen
;
popupAnchor
PopupToShow=
popupWin
;
popupWin
Visible=true;
popupWin
AutoShow=true;
則上面的代碼可以實現
當點擊spanreopen區域時
可以使已經彈出的消息窗口再次彈出
DEMO例子裡演示了如何使用popupanchor控件
如下圖
當點擊第一個文本框時
彈出窗口
提示要輸入文字
當輸入完第一個文本框的內容時
將鼠標移動到第二個文本框時
又會彈出第二個窗口
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111310182844.jpg)
![](http://tw.wingwit.com/Article/UploadFiles/201311/2013111310182984.jpg)
在本文提供的下載中提供了該控件的完整代碼使用控件的范例工程和關於該控件的詳細事件方法說明的CHM文件可以在 上運行通過
From:http://tw.wingwit.com/Article/program/net/201311/13210.html