这篇文章描述了一个asp.net popup 控件。 这个控件模仿MSN Messenger的警告框,但它被设计用于Web开发。控件的外观可以通过预定义样式或者修改颜色来彻底改变。
此控件支持拖放,因此用户可以拖拽控件到页面的任何位置。这个控件的一个非常重要的特征是兼容当前流行的大多数浏览器。通过了最新版的Mozilla, Internet Explorer and Opera测试。
不同的浏览器看到的外观略有不同。你也可以用HTML来控制更多控件属性,也可以自定义控件图标或者任何你想要的。
特征:
Asp.net弹出对话框控件
1:动画方式弹出,就像MSN的提示框
2:漂亮,详细见配图
3:还可以再在开一个更加详细的内容网页
4:自动关闭,无需手工确认那个ok
5:示例包括C#和VB两个版本,popUp的源文件在Source文件夹中
在线演示:
Open online sample
英文原文:
Introduction

This article describes an ASP.NET popup control. This control imitates MSN Messenger alert, but it is designed for use in a web page. Graphical appearance of this control can be completely changed by using one of predefined styles or by modifying all colors used on the control. Control supports Drag&Drop, so user can move control on the page, where he wants.
A very important feature of this control is, that it can be used on most of the current browsers. It is tested with latest version of Mozilla, Internet Explorer and Opera. The look of the control is different on browsers that doesn't support filters (filters are supported only in newer versions of MSIE). You can also use HTML in lot of control properties, so you can get popup with icon or anything you want.
ActionsThe control has two events, LinkClicked (link in popup was clicked) and PopupClosed (user clicked on 'X' button in popup). There are three ways how this events can be handled. The method that will be used is determined by ActionType property. There can be the following three types of actions:

- MessageWindow (default) - If this action is selected, control will open new browser window with text specified by Text property.
- OpenLink - In this case, control allows you to do any JavaScript operation or open link to any other page (Link property). You can also change target attribute of generated <A> tag. Generated code will look like this: <a href="[Link]" target="[LinkTarget]">Link..</a>, so be careful when using quotes in Link. (Target attribute is added only when LinkTarget isn't empty string.)
- RaiseEvents - When you select this option, popup control will raise LinkClicked or PopupClosed events on server-side.
Using this controlAdding the control to a web page is very simple. In VS.NET, you can just use
Add/Remove Toolbox Items and select control's DLL file. Control will appear in toolbox and you can add it to a page.
DesignerControl has rich support for designer, so you can change every property of control at design-time. In category 'Action', you can define what the control should do when user clicks on link or closes popup element. Properties in categories 'Texts' and 'Design' allow you to modify control look and displayed messages. In 'Behavior', you can change timing (when popup will be displayed and hidden). AutoShow property indicates whether control will be displayed after page is loaded. This is useful when you want to show control later using Anchor control. If you set DragDrop to true, user can change control's position and move it on the page. 'Window' category allows you to change properties of window that will appear if you set ActionType to MessageWindow. Last properties are added to category 'Layout' and it makes possible to modify position, where window will be displayed (offsets from bottom-left or bottom-right window corner).
CodeFollowing code describes how to change a few properties and show popup control from code:
<!-- 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>// Popup.aspx.cs// Change action typepopupWin.ActionType=EeekSoft.Web.PopupAction.MessageWindow;// Set popup and window textspopupWin.Title="This is popup";popupWin.Message="<i>Message</i> displayed in popup";popupWin.Text="Text to show in new window..";// Change color stylepopupWin.ColorStyle=EeekSoft.Web.PopupColorStyle.Green;// Change timingpopupWin.HideAfter=5000;popupWin.ShowAfter=500;// Show popup (after page is loaded)popupWin.Visible=true;
Using anchor controlDesigner


Adding anchor control to page at design-time is similar as adding popup control. When you add anchor to page, you can select ID of existing server-side control, or write ID of any other element, and choose its client-side event you want to handle. If you want to only reopen popup, you don't need to do anything else. You only have to ensure that popup window control will be rendered to output page (it must be visible). If you don't want to open popup when page is loaded, set AutoShow to false and popup will open after specified event occurs.
You can also change texts on popup control using PopupWinAnchor. To do this, set property ChangeTexts of anchor control to true. If this is selected, anchor control will change title of popup to NewTitle, message to NewMessage and text in optional new browser window to NewText, when client-side event is raised.
CodeFollowing example shows how PopupWinAnchor control can be used to reopen once closed popup control:
<!-- 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> <span id="spanReopen"> Click here to reopen popup ! </span>// Anchor.aspx.cs// Handle onclick event ..popupAnchor.HandledEvent="onclick";// .. of spanReopen elementpopupAnchor.LinkedC;// Show popupWin when event occurspopupAnchor.PopupToShow="popupWin";// Popup win is visible ..popupWin.Visible=true;// .. and will be displayed when page is loadedpopupWin.AutoShow=true;
Creating control at runtimeThere were problems with creating controls at runtime. This is fixed in latest version and here is an example of how to create PopupWindow with PopupWinAnchor control at runtime. Following code will create one popup window that will be displayed (using JavaScript) after user clicks on spanReopen element. (This sample assumes, that you have an element called spanReopen on your page).
// Create popup window and popup win anchor control (in Page_Load)PopupWin popupWin=new PopupWin();PopupWinAnchor popupAnchor=new PopupWinAnchor();// Add controls to pageplaceHolder.Controls.Add(popupAnchor); placeHolder.Controls.Add(popupWin);// Set anchor propertiespopupAnchor.PopupToShow=popupWin.ClientID;popupAnchor.LinkedC;popupAnchor.HandledEvent="onclick";// Set popup win propertiespopupWin.ActionType=EeekSoft.Web.PopupAction.MessageWindow;popupWin.Title="This is popup";popupWin.Message="Message displayed in popup";// Show popuppopupWin.Visible=true;popupWin.AutoShow=false;
Who can use it ?This control can be well used to notify users about important information. For example, in a web email client, you may want to notify the user about new message. In applications where users can communicate inside system, you can use this control to alert user, that someone wants to talk to him. Benefit of this control is, that it doesn't need any fixed space on web page and it is remarkable, so user will notice it. Another way of how to use it is to show advertising information in it instead of using big Flash animations (See
online demo for CodeProject banner).
Anchor control makes it possible to use popup control faster and with less page reloading. For example, you can use popup control to show quick help on form fields like
in this sample. Quick help is displayed when textbox receives focus. Another way of how to use it for quick help is to add button behind each textbox and when user clicks on this button, popup will be displayed.
History
- 20/04/2004 - PopupSpeed added (you can change sliding speed of popup window).
- 20/04/2004 - Few minor bugs fixed. Sample that shows how to generate controls at runtime added.
- 26/02/2004 - ShowLink property added (allows not to generate link in popup control).
- 11/30/2003 - DLL compiled both .NET 1.0 and .NET 1.1, OpenLink error fixed, Drag & drop support, VB.NET sample added (1.2).
- 11/18/2003 - PopupWinAnchor added (1.1). Thanks to Oskar Austegard for his suggestion.
- 11/15/2003 - First version (1.0)
LicenseThis article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors may to use can be found
here附件:
popUp_Control.rar