Vous êtes sur la page 1sur 12

AjaxControlToolkit documentation

(1) Accordion
The Accordion is a web control that allows you to provide multiple panes and display them one at a time. It is like
having several CollapsiblePanels where only one can be expanded at a time. The Accordion is implemented as a web
control that contains AccordionPane web controls. Each AccordionPane control has a template for its Header and its
Content. We keep track of the selected pane so it stays visible across postbacks.
It also supports three AutoSize modes so it can fit in a variety of layouts.
• None - The Accordion grows/shrinks without restriction. This can cause other elements on your page to move up and dow
• Limit - The Accordion never grows larger than the value specified by its Height property. This will cause the content to
• Fill - The Accordion always stays the exact same size as its Height property. This will cause the content to be expanded o
The Accordion is written using an extender like most of the other extenders in the AJAX Control Toolkit. The
extender expects its input in a very specific hierarchy of container elements (like divs), so the Accordion and
AccordionPane web controls are used to generate the expected input for the extender. The extender can also be used
on its own if you provide it appropriate input.
The Accordion can also be databound. Simply specify a data source through the DataSource or DataSourceID
properties and then set your data items in the HeaderTemplate and ContentTemplate properties.
(2) AlwaysVisibleControl

The AlwaysVisibleControl is a simple extender allowing you to pin controls to the page so that they appear to float
over the background body content when it is scrolled or resized. It targets any ASP.NET control and always keeps the
position a specified distance from the desired horizontal and vertical sides.
To avoid having the control flash and move when the page loads, it is recommended that you absolutely position the
control in the desired location in addition to attaching the extender.

(3) Animation
The animation support in the Toolkit is more than just a control. It's a pluggable, extensible framework for easily
adding animation effects to your web pages.
The sample below demonstrates a composite animation consisting of four primary animation actions, done in parallel:
• Move (to move the panel to its final location)
• Resize (to change the size of the panel)
• Fade (to fade the text in/out)
Color (the flyout changes from gray to white and the text pulses red)
By composing basic animations (there are many to choose from!) you can create very sophisticated effects, or use
them independently from client code, server-side code, or XML markup.
(4) AutoComplete

AutoComplete is an ASP.NET AJAX extender that can be attached to any TextBox control, and will associate that
control with a popup panel to display words that begin with the prefix typed into the textbox.
The dropdown with candidate words supplied by a web service is positioned on the bottom left of the text box.
In the sample above, the textbox is associated with an AutoCompleteExtender that pulls words that start with the
contents of the textbox using a web service.
When you have typed more content than the specified minimum word length, a popup will show words or phrases
starting with that value. Caching is turned on, so typing the same prefix multiple times results in only one call to the
web service.

(5) Calendar

Calendar is an ASP.NET AJAX extender that can be attached to any ASP.NET TextBox control. It provides client-
side date-picking functionality with customizable date format and UI in a popup control. You can interact with the
calendar by clicking on a day to set the date, or the "Today" link to set the current date.
In addition, the left and right arrows can be used to move forward or back a month. By clicking on the title of the
calendar you can change the view from Days in the current month, to Months in the current year. Another click will
switch to Years in the current Decade. This action allows you to easily jump to dates in the past or the future from
within the calendar control.
The page uses the culture setting English (United States) which was specified by the browser. The page properties
have Culture="auto" and UICulture="auto" set to enable the same. See this MSDN article for more information. The
ScriptManager on this Calendar demo page has EnableScriptGlobalization="true" and

(6) CascadingDropDown

CascadingDropDown is an ASP.NET AJAX extender that can be attached to an ASP.NET DropDownList control to
get automatic population of a set of DropDownList controls. Each time the selection of one the DropDownList
controls changes, the CascadingDropDown makes a call to a specified web service to retrieve the list of values for the
next DropDownList in the set.
CascadingDropDown enables a common scenario in which the contents of one list depends on the selection of another
list and does so without having to embed the entire data set in the page or transfer it to the client at all. All the logic
about the contents of the set of DropDownList controls lives on the server in a web service. This web service can use
any suitable method for storing and looking up the relevant data. The sample web service used here reads the data set
from a simple hierarchical XML data file. The sample data file shows that the DropDownList items can have distinct
names and value (values are optional in the sample). There is also a walkthrough showing how to use a
CascadingDropDown with a database.

(7) CollapsiblePanel

The CollapsiblePanel is a very flexible extender that allows you to easily add collapsible sections to your web page.
This extender targets any ASP.NET Panel control. The page developer specifies which control(s) on the page should
be the open/close controller for the panel, or the panel can be set to automatically expand and/or collapse when the
mouse cursor moves in or out of it, respectively.
The panel is also post-back aware. On a client postback, it automatically remembers and restores its client state. This
demonstrates the ability of these extenders to have some communication between the client and the server code. Click
here to cause a postback. The page developer can specify whether the panel should scroll when it does not expand to
the full size of its contents, and can also specify whether the panel expands in the height or width dimensions.
Note: CollapsiblePanel assumes that the standard CSS box model is being used. Early versions of Internet Explorer
didn't support that model completely, so please use the !DOCTYPE declaration (as found at the top of this page and
enabled by default for new ASP.NET pages) to specify that the page should be rendered in IE's standards-compliant
(8) ConfirmButton

ConfirmButton is a simple extender that catches clicks on a button (or any instance of a type derived from Button) and
displays a message to the user. If the "OK" button is clicked, the button or link functions normally. If not, the click is
trapped and the button will not perform its default submit behavior; optionally, a client script is executed if the
OnClientCancel property is set. This is useful for delete links or anything else that requires confirmation from the
(9) DragPanel

The DragPanel extender allows users to easily add "draggability" to their controls. The DragPanel targets any
ASP.NET Panel and takes an additional parameter that signifies the control to use as the "drag handle". Once
initialized, the user can freely drag the panel around the web page using the drag handle.

(10) DropDown

DropDown is an ASP.NET AJAX extender that can be attached to almost any ASP.NET control to provide a
SharePoint-style drop-down menu. The displayed menu is merely another panel or control. In the above sample the
drop-down is a Panel which contains LinkButtons. The drop-down is activated by left- or right-clicking the attached
control. If the behavior is attached to a Hyperlink or LinkButton, clicking on the link itself will operate normally.

(11) DropShadow

DropShadow is an extender which applies a "Drop Shadow" to a Panel. It allows you to specify how wide the shadow
is as well as how opaque it is, or if you would like rounded corners. For pages that allow the user to move or resize
the panel, the DropShadow has a mode that will resize/reposition it to match that of the target panel at run time.

(12) DynamicPopulate

DynamicPopulate is a simple extender that replaces the contents of a control with the result of a web service or page
method call. The method call returns a string of HTML that is inserted as the children of the target element.
(13) FilteredTextBox

FilteredTextBox is an extender which prevents a user from entering invalid characters into a text box. Note that since
this effect can be avoided by deactivating JavaScript, you should use this extender as a convenience for your users,
but you must never expect that the data being sent to the server consists of "valid" chars only.

(14) HoverMenu

HoverMenu is an ASP.NET AJAX extender that can be attached to any ASP.NET WebControl, and will associate that
control with a popup panel do display additional content. When the user moves the mouse cursor over the main
control two things happen:
1. The popup panel is displayed at a position specified by the page developer (at the left, right, top, or bottom of
the main control)
2. Optionally, a CSS style is applied to the control to specify it as "hot"
In the sample above, an ASP.NET GridView is populated with data from a database. In each row of the GridView, a
HoverMenu associates the content of the row with a Panel containing links that operate on that row. Mouse over the
GridView above to see this behavior. Upon choosing "Edit", the row will go into edit mode, and you'll notice the
menu will appear to the right of the content, demonstrating the ability to choose the popup position.

(15) ListSearchExtender

The ListSearchExtender lets you search for items in a ListBox or DropDownList by typing. The extender performs an
incremental search within the ListBox based on what has been typed so far. The prompt message that gets displayed
when you click the list can be customized along with its CSS class and position.
(16) MaskedEdit

MaskedEdit is an ASP.NET AJAX extender that attaches to a TextBox control to restrict the kind of text that can be
entered. MaskedEdit applies a "mask" to the input that permits only certain types of characters/text to be entered. The
supported data formats are: Number, Date, Time, and DateTime. MaskedEdit uses the culture settings specified in the
CultureName property. If none is specified the culture setting will be the same as the page: English (United States).

(17) ModalPopup

The ModalPopup extender allows a page to display content to the user in a "modal" manner which prevents the user
from interacting with the rest of the page. The modal content can be any hierarchy of controls and is displayed above
a background that can have a custom style applied to it. When displayed, only the modal content can be interacted
with; clicking on the rest of the page does nothing. When the user is done interacting with the modal content, a click
of an OK/Cancel control dismisses the modal content and optionally runs custom script. The custom script will
typically be used to apply whatever changes were made while the modal mode was active. If a postback is required,
simply allow the OK/Cancel control to postback and the page to re-render. You can also absolutely position a modal
popup by setting the X and Y properties. By default it is centered on the page, however if just X or Y is specified then
it is centered vertically or horizontally.
The control above is initialized with this code. The display on the modal popup element is set to none to avoid a
flicker on render. The italic properties are optional:

<ajaxToolkit:ModalPopupExtender ID="MPE" runat="server"








PopupDragHandleControlID="Panel3" />

• TargetControlID - The ID of the element that activates the modal popup

• PopupControlID - The ID of the element to display as a modal popup
• BackgroundCssClass - The CSS class to apply to the background when the modal popup is displayed
• DropShadow - True to automatically add a drop-shadow to the modal popup
• OkControlID - The ID of the element that dismisses the modal popup
• OnOkScript - Script to run when the modal popup is dismissed with the OkControlID
• CancelControlID - The ID of the element that cancels the modal popup
• OnCancelScript - Script to run when the modal popup is dismissed with the CancelControlID
• PopupDragHandleControlID - The ID of the embedded element that contains the popup header/title which will be used
• X - The X coordinate of the top/left corner of the modal popup (the popup will be centered horizontally if not specified)
• Y - The Y coordinate of the top/left corner of the modal popup (the popup will be centered vertically if not specified)
• RepositionMode - The setting that determines if the popup needs to be repositioned when the window is resized or scrol

(18) MutuallyExclusiveCheckBox

MutuallyExclusiveCheckBox is an ASP.NET AJAX extender that can be attached to any ASP.NET CheckBox
control. By adding a number of checkboxes to the same "Key", only one checkbox with the specified key can be
checked at a time. This extender is useful when a number of choices are available but only one can be chosen, similar
to a radio button. The use of checkboxes however allows you to choose to uncheck a value which is not possible
normally with radio buttons. This also provides a more consistent and expected interface than using javascript to
allow the de-selection of a RadioButton item.

(19) NoBot

NoBot is a control that attempts to provide CAPTCHA-like bot/spam prevention without requiring any user
interaction. This approach is easier to bypass than an implementation that requires actual human intervention, but
NoBot has the benefit of being completely invisible. NoBot is probably most relevant for low-traffic sites where
blog/comment spam is a problem and 100% effectiveness is not required.
NoBot employs a few different anti-bot techniques:
• Forcing the client's browser to perform a configurable JavaScript calculation and verifying the result as
part of the postback. (Ex: the calculation may be a simple numeric one, or may also involve the DOM for
added assurance that a browser is involved)
• Enforcing a configurable delay between when a form is requested and when it can be posted back. (Ex: a
human is unlikely to complete a form in less than two seconds)
• Enforcing a configurable limit to the number of acceptable requests per IP address per unit of time. (Ex: a
human is unlikely to submit the same form more than five times in one minute)
NoBot can be tested by violating any of the above techniques: posting back quickly, posting back many times, or
disabling JavaScript in the browser.
(20) NumericUpDown

NumericUpDown is an ASP.NET AJAX extender that can be attached to an ASP.NET TextBox control to add "up"
and "down" buttons that increment and decrement the value in the TextBox. The increment and decrement can be
simple +1/-1 arithmetic, they can cycle through a provided list of values (like the months of the year), or they can call
a Web Service to determine the next value. Page authors can also provide custom images to be used instead of the
default up/down button graphics.

(21) PagingBulletedList

PagingBulletedList is an ASP.NET AJAX extender that can be attached to an ASP.NET BulletedList control and
provide client-side sorted paging. It is very flexible and lets you specify either the number of characters used in the
heading indices or the maximum number of items to display per index. If the input is not sorted (either on the server
or client), it will generated more header indices but still function appropriately.

(22) PasswordStrength

PasswordStrength is an ASP.NET AJAX extender that can be attached to an ASP.NET TextBox control used for the
entry of passwords. The PasswordStrength extender shows the strength of the password in the TextBox and updates
itself as the user types the password. The indicator can display the strength of the password as a text message or with
a progress bar indicator. The styling and position of both types of indicators is configurable. The required strength of
the password is also configurable, allowing the page author to tailor the password strength requirements to their
needs. The text messages that describe the current strength of the password can also be configured and their default
values have localization support built-in. The second and third extenders' strings are being pulled from Toolkit
resources files. We do not have strings for all languages currently so they may show non-localized values for some
languages. A help indicator can be used to provide explicit instructions about what changes are required to achieve a
strong password. The indicator is displayed when the user begins typing into the TextBox and is hidden from view
once the TextBox loses focus.

(23) PopupControl

PopupControl is an ASP.NET AJAX extender that can be attached to any control in order to open a popup window
that displays additional content. This popup window will probably be interactive and will probably be within an
ASP.NET AJAX UpdatePanel, so it will be able to perform complex server-based processing (including postbacks)
without affecting the rest of the page. The popup window can contain any content, including ASP.NET server
controls, HTML elements, etc. Once the work of the popup window is done, a simple server-side call dismisses it and
triggers any relevant script on the client to run and update the page dynamically.

(24) Rating

The Rating control provides an intuitive rating experience that allows users to select the number of stars that
represents their rating. The page designer can specify the initial rating, the maximum rating to allow, the alignment
and direction of the stars, and custom styles for the different states a star can have. Rating also supports a
ClientCallBack event that allows custom code to run after the user has rated something.

(25) ReorderList

ReorderList is an ASP.NET AJAX control that implements a bulleted, data-bound list with items that can be
reordered interactively. To reorder the items in the list, the user simply drags the item's control bar to its new location.
Graphical feedback is shown where the item will be placed as it is dragged by the user. The data source is updated
after the item is dropped in its new location.
When bound to data, the ReorderList control will behave like many other databound controls. If the data you are
displaying has a field that determines sort order (e.g. the select query is sorted by this column), and that column is of
an integer type, the ReorderList can automatically perform reorders if its SortOrderField property is set. The
ReorderList can also bind to any data source that implements IList (such as Arrays).
The ReorderList control is different than the other samples here because it is an ASP.NET server control that is aware
of ASP.NET AJAX behaviors. Rather than extending existing controls on the page, it delivers a rich client experience
directly and still has a traditional post-back server model for interacting with the application.
The ReorderList can handle reorders in two ways, either via a callback or via a postback. For a callback, no page
postback happens on a reorder. This is useful if the data is only to be ordered. If the data items are to be deleted or
edited, a full postback needs to occur to sync the server side state with the client side state. The PostbackOnReorder
property enables this.
(26) ResizableControl

ResizableControl is an extender that attaches to any element on a web page and allows the user to resize that control
with a handle that attaches to lower-right corner of the control. The resize handle lets the user resize the element as if
it were a window. The appearance of the resize handle can be specified by the page designer with a CSS style. The
content within the element can use CSS styles to automatically resize to fit the new dimensions. Alternatively,
ResizableControl exposes two events (onresizing and onresize) that the page designer can attach custom script to in
order to enable more complex layout logic. Element dimensions are preserved across postbacks to the server and
"size" properties accessible on both the client and server can be used to enable custom resize behaviors.
ResizableControl can optionally limit the maximum and minimum width and height of the target control so that
resizing can be constrained by the page author (for example, to limit scrolling to only the horizontal dimension).
(27) RoundedCorners

The RoundedCorners extender applies rounded corners to existing elements. To accomplish this it inserts elements
before and after the element that is selected, so the overall height of the element will change slightly. You can choose
the corners of the target panel that should be rounded by setting the Corners property on the extender to None,
TopLeft, TopRight, BottomRight, BottomLeft, Top, Right, Bottom, Left, or All.

(28) Slider

The Slider extender allows to upgrade an asp:TextBox to a graphical slider that allows the user to choose a numeric
value from a finite range. The Slider's orientation can be horizontal or vertical and it can also act as a "discrete" slider,
allowing only a specified number of values within its range.
If the developer doesn't specify any parameters, the Slider is rendered with the default layout shown in the
demonstration and its range of values goes from 0 to 100. The Slider's layout can be customized by providing CSS
classes for the Slider's rail and handle. If handle animation is enabled, the handle slides to the specified point on the
rail with a nice animation effect.

When a value is chosen using the Slider, it is automatically persisted during full or partial postbacks. The developer
can continue to reference the asp:TextBox to get and set the Slider's value.
The Slider's value can be dynamically displayed in another asp:TextBox or an asp:Label. If a TextBox is used, the
Slider's value can be updated through the bound TextBox.
By declaring the extended TextBox as a trigger for an UpdatePanel, the Slider can fire the update whenever the handle
is released. By setting the RaiseChangeOnlyOnMouseUp to false, the update will be fired as soon as the Slider's value
The TooltipText property allows to display some text when the mouse pointer hovers the slider's handle. A {0}
placeholder in the text is replaced by the current value of the slider.
(29) SlideShow
SlideShow is an extender that targets image controls. You can provide it with buttons to hit previous, next and play.
You can configure the slideshow to play automatically on render, allow it loop through the images in a round robin
fashion and also set the interval for slide transitions. You can use a page method to supply images to the slide show or
use a webservice. In the sample above we have provided you with a slideshow that plays automatically on render and
loops around to the first picture if you hit next on the last picture and vice versa if you hit previous on the first picture.
The slideshow transitions pictures after 3 seconds.
(30) Tabs
TabContainer is an ASP.NET AJAX Control which creates a set of Tabs that can be used to organize page content. A
TabContainer is a host for a number of TabPanel controls.
Each TabPanel defines its HeaderText or HeaderTemplate as well as a ContentTemplate that defines its content. The
most recent tab should remain selected after a postback, and the Enabled state of tabs should remain after a postback
as well.
(31) TextBoxWatermark
TextBoxWatermark is an ASP.NET AJAX extender that can be attached to an ASP.NET TextBox control to get
"watermark" behavior. When a watermarked TextBox is empty, it displays a message to the user with a custom CSS
style. Once the user has typed some text into the TextBox, the watermarked appearance goes away. The typical
purpose of a watermark is to provide more information to the user about the TextBox itself without cluttering up the
rest of the page.
(32) ToggleButton
ToggleButton is an ASP.NET AJAX extender that can be attached to an ASP.NET CheckBox control. ToggleButton
enables the use of custom images to show the state of the CheckBox. The behavior of the CheckBox is unaffected.
(33) UpdatePanelAnimation
The UpdatePanelAnimationExtender is a simple extender that allows you to utilize the powerful animation
framework with existing pages in an easy, declarative fashion. It is used to play animations both while an
UpdatePanel is updating and after it has finished updating.
It is important to note that because of the UpdatePanel architecture, the OnUpdating animation will always play
when any partial postback starts, but the OnUpdated animation will only play at the end of a partial postback if its
UpdatePanel was changed (note: setting the UpdatePanel's UpdateMode="Always" will ensure the OnUpdated
animation plays when every partial postback completes).
The animations to be played are declaratively specified using XML. You can read the Using Animations walkthrough
for more details about creating these generic animation declarations, as well as other ways to use the animation
framework. The framework provides a lot of useful animations to handle movement, resizing, fading, etc. All the
animations and their properties are described in the Animation Reference.

(34) ValidatorCallout
ValidatorCallout is an ASP.NET AJAX extender that enhances the functionality of existing ASP.NET
validators. To use this control, add an input field and a validator control as you normally would. Then add
the ValidatorCallout and set its TargetControlID property to reference the validator control.
(35) AsyncFileUpload

AsyncFileUpload is an ASP.NET AJAX Control that allows you asynchronously upload files to server. The file
uploading results can be checked both in the server and client sides. You can save the uploaded file by calling the
SaveAs() method in a handler for the server UploadedComplete event.
The control above is initialized with this code. The italic properties are optional:
<ajaxToolkit:AsyncFileUpload OnClientUploadError="uploadError"
OnClientUploadComplete="uploadComplete" runat="server"
ID="AsyncFileUpload1" Width="400px" UploaderStyle="Modern"
UploadingBackColor="#CCFFFF" ThrobberID="myThrobber"
• UploadedComplete - Fired on the server side when the file successfully uploaded
• UploadedFileError - Fired on the server side when the uloaded file is corrupted
• CompleteBackColor - The control's background color on upload complete. Default value - 'Lime'.
• ContentType - Gets the MIME content type of a file sent by a client.
• ErrorBackColor - The control's background color on upload error. Default value - 'Red'.
• FileContent - Gets a Stream object that points to an uploaded file to prepare for reading the contents of the file.
• FileName - Gets the name of a file on a client to upload using the control.
• HasFile - Gets a bool value indicating whether the control contains a file.
• OnClientUploadComplete - The name of a javascript function executed in the client-side after the file successfully uplo
• OnClientUploadError - The name of a javascript function executed in the client-side if the file uploading failed
• OnClientUploadStarted - The name of a javascript function executed in the client-side on the file uploading started
• PostedFile - Gets a HttpPostedFile object that provides access to the uploaded file.
• ThrobberID - ID of control that is shown while the file is uploading.
• UploaderStyle - The control's appearance style (Traditional, Modern). Default value - 'Traditional'.
• UploadingBackColor - The control's background color when uploading is in progress. Default value - 'White'.
• Width - The control's width (Unit). Default value - '355px'.
• SaveAs(string filename) - Saves the contents of an uploaded file.
(36) ColorPicker

ColorPicker is an ASP.NET AJAX extender that can be attached to any ASP.NET TextBox control. It provides client-
side color-picking functionality with UI in a popup control. You can interact with the color picker by clicking on a
color to select the color. Optionally, a PopupButton control and a SampleControl can be provided which allows
customizing ColorPicker's behavior.
In addition, if a custom color value is entered in a targeted TextBox then the sample control if it's used can
demonstrate a custom color even if it's not in a color picker palette.
(37) ComboBox

ComboBox is an ASP.NET AJAX control that, like the AutoCompleteExtender, combines the flexibility of a TextBox
with a list of options that users are able to choose from. It borrows many of its properties, behaviors, and naming
conventions from the Windows Forms ComboBox control, and is derived from the same base class as the ListBox,
BulletedList, and DropDownList web controls. In fact, a ComboBox is best described as a DropDownList that can be
typed directly into like a TextBox.

Working with a ComboBox in code is also a lot like working with a DropDownList. It has all of the same properties
and events as a DropDownList, with a few additional ComboBox-specific properties and events. Firstly, it can be
configured to either prevent or allow user-typed text that does not match an item in the list. When user-typed text does
match an item in the list, the ComboBox can also be configured to auto-complete the text based on the first matched
item in the list, to show the list and highlight the first matched item, or to do both simultaneously. When user-typed
text does not match an item in the list, the ComboBox raises ItemInserting and ItemInserted events which can be
handled during postback. Other than these special behaviors, the ComboBox behaves essentially like a

The ComboBox is intended as a supplement to, rather than a replacement for, the AutoCompleteExtender. Though
there are many scenarios where either could be used to satisfy the same user interface requirements, there are
scenarios where one control could offer particular advantages or disadvantages compared to the other:
• Data Binding - The ComboBox can bind to data source controls like SqlDataSource and ObjectDataSource, and to runti
DropDownList, the ComboBox also has an Items collection that can be manipulated declaratively and/or programmatically.
page method. When it is possible and more convenient to bind to a data source control, runtime object, or declared item list,
• Restricting User-Typed Text - Another feature of the ComboBox is that it can restrict input so that an item in the list is
The AutoCompleteExtender allows users to type anything into the TextBox being extended, even if the typed text doesn't m
be a better fit for user interfaces which require a predetermined item be selected from the list (like a foreign key input).
• Composite Items - Items in a ComboBox, like items in a DropDownList, have both Text and Value properties. The only
the TextBox being extended. If the items in your list can be modeled with different Text and Value properties, the ComboBo
keys can be a good example of this).
• Long Item Lists / Multiple Input Controls - All of the items in a ComboBox's list will be rendered to the web page it e
its ServiceMethod after the page is rendered. When your ComboBox contains a rather long list of items, or when you have a
same UpdatePanel), load times could be slowed down significantly. When ComboBoxes perform slowly because of the amo
can be used instead to increase performance.
• Partial Auto-Completion - The auto-complete feature of the ComboBox will only match items that start with the first us
hand, can be configured to match items where the user-typed text lies somewhere after the first character in the item. A Com
"partially matched" like this.
• Multiple Item Selection - The ComboBox, like the DropDownList, will only allow one item to be selected at a time. Th
items simultaneously (using the AutoCompleteExtender's DelimiterCharacters property), like a ListBox or CheckBoxList. W
the AutoCompleteExtender should be used instead of the ComboBox.
(38) HTMLEditor

HTMLEditor is an ASP.NET AJAX Control that allows you to easily create and edit HTML content. Various buttons
in toolbar are used for content editing. You can see generated HTML markup and preview document.
(39) Seadragon

The Seadragon control can be used for interactively viewing images. Use your mouse to pan and zoom around the
Learn how to create images that work with the Seadragon control by visiting the Microsoft Live Labs website at

(40) MultiHandleSlider
The MultiHandleSlider extender provides a feature-rich extension to a regular asp:Textbox control. It allows you to
choose a single value, or multiple values in a range, through a graphical slider interface. It supports one handle, dual
handles, or any number of handles bound to the values of asp:TextBox or asp:Label controls. It also provides options
for read-only access, custom graphic styling, hover and drag handle styles, as well as mouse and keyboard support for

Much of the MultiHandleSlider's design is based on the original Slider, so you may want to review the advice and
design suggestions offered by the demonstration page of that extender. For example, the MultiHandleSlider retains the
same ToolTip functionality as the original Slider.

By declaring the extended TextBox as a trigger for an UpdatePanel, the MultiHandleSlider can raise the update event
whenever the handle is released. By setting the RaiseChangeOnlyOnMouseUp property to false, the update is raised
as soon as the MultiHandleSlider's value changes.