Home / AJAX

HOW TO Use the Slider Control

RSS
Modified on 2009/12/24 03:31 by Chris Muench Categorized as Uncategorized

Slider Demonstration



Slider Description

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 changes.

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.

Video - How Do I: Use the ASP.NET AJAX Slider Control?

Slider Client Code Sample

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Untitled Page</title> <style type="text/css"> </style> <link rel="Stylesheet" href="http://ajax.microsoft.com/ajax/beta/0911/extended/slider/slider.css" /> <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.js" type="text/javascript"></script> <script src="http://ajax.microsoft.com/ajax/beta/0911/Start.debug.js" type="text/javascript"></script> <script src="http://ajax.microsoft.com/ajax/beta/0911/extended/ExtendedControls.debug.js" type="text/javascript"></script> <script type="text/javascript"> Sys.require(Sys.components.slider, function() { $("#slider1").slider({ maximum: 100, minimum: 0 }); }); </script> </head> <body> <form id="form1" action="."> <input type="text" id="slider1" /> </form> </body> </html>


Slider Client Properties

Slider Server Code Sample

        <table style="margin:auto">
            <tr>
                <td>
                    Horizontal Slider ranging from -100 to +100 with 5 discrete values (5 steps),
                    bound to a Label control. Changing the value will cause the Slider to trigger
                    an update of the UpdatePanel that displays the current date and time.
                </td>
                <td style="width:205px">
                    <table>
                        <tr>
                            <td style="width:140px;">
                                <asp:TextBox ID="Slider1" runat="server" AutoPostBack="true" style="right:0px" Text="0" />
                            </td>
                            <td style="width:15px"></td>
                            <td style="width:auto">
                                <asp:Label ID="Slider1_BoundControl" runat="server" style="text-align:right" />
                            </td>
                        </tr>
                        <tr>
                            <td colspan="3">
                                <div style="padding-top:10px;text-align:center">
                                    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
                                        <ContentTemplate>
                                            <asp:Label ID="lblUpdateDate" runat="server" style="font-size:80%;" Text="&nbsp;" />
                                        </ContentTemplate>
                                        <Triggers>
                                            <asp:AsyncPostBackTrigger ControlID="Slider1" EventName="TextChanged" />
                                        </Triggers>
                                    </asp:UpdatePanel>
                                </div>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    Vertical Slider ranging from 0 to 100, bound to a TextBox. Clicking on the rail will cause 
                    the handle to slide with a nice animation effect.
                </td>
                <td style="height:166px;">
                    <table style="display:inline;">
                        <tr>
                            <td><asp:TextBox ID="Slider2" runat="server" /></td>
                            <td><asp:TextBox ID="Slider2_BoundControl" runat="server" Width="30" /></td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    Slider instance that is accessible. Its borders allow the slider's rail
                    to be distinguished in high contrast mode. The TooltipText property on the slider's handle
                    indicates the current value of the slider and what is actionable for the user when focus is set on
                    that image. The value of the slider can be changed using the bound textbox so that it is completely 
                    usable without a mouse. Keyboard support for the Slider's handle is not in yet but will be available in
                    the later Toolkit releases.
                </td>
                <td style="width:205px">
                    <table>
                        <tr>
                            <td style="width:140px;border:solid 1px #808080">
                                <asp:TextBox ID="Slider3" runat="server" style="right:0px" Text="0" />
                            </td>
                            <td style="width:15px"></td>
                            <td style="width:auto">
                                <asp:TextBox ID="Slider3_BoundControl" runat="server" Width="30" />
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
                <tr>
                    <td>
                        Slider instance using a decimal range from 0.1 to 1.0.
                    </td>
                    <td style="width: 205px">
                        <table>
                            <tr>
                                <td style="width: 140px;">
                                    <asp:TextBox ID="Slider4" runat="server" Style="right: 0px" />
                                </td>
                                <td style="width: 15px">
                                </td>
                                <td style="width: auto">
                                    <asp:Label ID="Slider4_BoundControl" runat="server" Style="text-align: right" />
                                </td>
                            </tr>
                        </table>
                    </td>
                </tr>
        </table>

<ajaxToolkit:SliderExtender ID="SliderExtender1" runat="server" BehaviorID="Slider1" TargetControlID="Slider1" Minimum="-100" Maximum="100" BoundControlID="Slider1_BoundControl" Steps="5" /> <ajaxToolkit:SliderExtender ID="SliderExtender2" runat="server" BehaviorID="Slider2" TargetControlID="Slider2" BoundControlID="Slider2_BoundControl" Orientation="Vertical" EnableHandleAnimation="true" /> <ajaxToolkit:SliderExtender ID="SliderExtender3" runat="server" BehaviorID="Slider3" TargetControlID="Slider3" BoundControlID="Slider3_BoundControl" Orientation="Horizontal" EnableHandleAnimation="true" TooltipText="Slider: value {0}. Please slide to change value." /> <ajaxToolkit:SliderExtender ID="SliderExtender4" runat="server" BehaviorID="Slider4" TargetControlID="Slider4" BoundControlID="Slider4_BoundControl" Orientation="Horizontal" EnableHandleAnimation="true" TooltipText="{0}" Decimals="2" Minimum="0.1" Maximum="1" />


Slider Server Properties

The properties in italics are optional.

<ajaxToolkit:SliderExtender ID="SliderExtender1" runat="server"
    TargetControlID="Slider1"
    Minimum="-100"
    Maximum="100"
    BoundControlID="Slider1_BoundControl"
    Steps="5" />
<ajaxToolkit:SliderExtender ID="SliderExtender2" runat="server"
    TargetControlID="Slider2"
    BoundControlID="Slider2_BoundControl"
    Orientation="Vertical"
    EnableHandleAnimation="true" />
  • Minimum - Minimum value allowed.
  • Maximum - Maximum value allowed.
  • Decimals - Number of decimal digits for the value.
  • Steps - Number of discrete values inside the slider's range.
  • Value - Current value of the slider
  • EnableHandleAnimation - Enable/disable the handle animation.
  • HandleAnimationDuration - Duration of the handle animation, in milliseconds.
  • RailCssClass - CSS class for the slider's rail.
  • HandleCssClass - CSS class for the slider's handle.
  • HandleImageURL - URL of the image to display as the slider's handle.
  • Length - Width/height of a horizontal/vertical slider when the default layout is used.
  • BoundControlID - ID of the TextBox or Label that dynamically displays the slider's value.
  • RaiseChangeOnlyOnMouseUp - If true, fires the change event on the extended TextBox only when the left mouse button is released.
  • TooltipText - Text to display in a tooltip when the handle is hovered. The {0} placeholder in the text is replaced with the current value of the slider.

Slider Additional Code Samples