suneet saini
suneet saini

Reputation: 610

MultiHandleSliderExtender: Error - Only one instance of a ScriptManager can be added to the page

I want develop a multi handler slider that can be adjusted from both the sides. My script as

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager1" EnablePartialRendering="true"/>
    <table>
        <tr>
            <td colspan="2">
                <asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional">
                    <ContentTemplate>
                        <table>
                            <tr>
                                <td  colspan="2">
                                    <asp:TextBox runat="server" Id="txtSlider"></asp:TextBox>
                                    <cc1:MultiHandleSliderExtender runat="server" ID="MultiHandleSliderExtender1"
                                        ShowHandleDragStyle="false" BehaviorID="MultiHandleSliderExtender1" 
                                        TargetControlID="txtSlider" Length="200" ShowInnerRail="true" 
                                        EnableMouseWheel="false" OnClientDrag="Drag" Increment="1" 
                                        RaiseChangeOnlyOnMouseUp="true" EnableRailClick="false" OnClientDragEnd="DragEnd"
                                        ShowHandleHoverStyle="true" Maximum="200" Minimum="1">
                                        <MultiHandleSliderTargets>
                                            <cc1:MultiHandleSliderTarget ControlID="rangeStart" />
                                            <cc1:MultiHandleSliderTarget ControlID="rangeEnd" />
                                        </MultiHandleSliderTargets>
                                    </cc1:MultiHandleSliderExtender>  
                                    </br>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                      <asp:Label ID="lblStartRange" runat="server" Text=""></asp:Label>
                                </td>
                                <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                                    &nbsp;
                                    <asp:Label ID="lblEndRange" runat="server" Text=""></asp:Label> 
                                </td>
                            </tr>
                            <tr>
                                <td>
                                     <asp:HiddenField ID="rangeStart" runat="server" />
                                </td>
                                <td>
                                    <asp:HiddenField ID="rangeEnd" runat="server" />
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                </td>
                            </tr>
                        </table>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </td>
        </tr>
    </table>

    <script type="text/javascript">
        var isDragging = false;
        function Drag(sender, args) {
            GetSliderRange($get("<%= rangeStart.ClientID %>").value, $get("<%= rangeEnd.ClientID%>").value);
        }

        function DragEnd(sender, args) {
           <%-- //prevent postback on slider click
            if ($get("<%= hdfTrackRangeStart.ClientID %>").value !== $get("<%= rangeStart.ClientID %>").value) {
            $get("<%= btnLoadChart.ClientID %>").click();
            //__doPostBack("<%= btnLoadChart.ClientID %>", "");
        }
        if ($get("<%= hdfTrackRangeEnd.ClientID %>").value !== $get("<%= rangeEnd.ClientID %>").value && $get("<%= hdfTrackRangeEnd.ClientID %>").value !== '0') {
            $get("<%= btnLoadChart.ClientID %>").click();
            //__doPostBack("<%= btnLoadChart.ClientID %>", "");
        }--%>
    }

        function GetSliderRange(startV, endV) {
            $get("<%= lblStartRange.ClientID %>").innerHTML = GetSliderText(arrRange[startV - 1], 's');
            $get("<%= lblEndRange.ClientID %>").innerHTML = GetSliderText(arrRange[endV - 1], 'e');
            // alert(arrRange[startV - 1]);
            // PageMethods.SliderRange(startV, endV, this.callback);
        }

        function GetSliderText(r, p) {
            var arrResult = r.split("--");
            var strText = '';
            if (p === 's') {
                strText = "<b>From</b> Year: " + arrResult[0] + " Month: " + arrResult[1];

            }
            else {
                strText = "<b>To</b> Year: " + arrResult[0] + " Month: " + arrResult[1];
            }
            return strText;
        }
    </script>
</asp:Content>

Initially i m just checking it with static values at page_load as

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                MultiHandleSliderExtender1.Minimum = 1;
                MultiHandleSliderExtender1.Maximum = 200;

                rangeStart.Value    = MultiHandleSliderExtender1.Minimum.ToString();
                rangeEnd.Value      = MultiHandleSliderExtender1.Maximum.ToString();
            }
        }

Thanks in advance. Please help me out to find the bug.

Upvotes: 0

Views: 215

Answers (1)

Carlos Landeras
Carlos Landeras

Reputation: 11063

That error in because you are working inside a page that inherits from a Master and you have two ScriptManager declared.

For sure you have and ScriptManager inside the Site.Masterand you are also adding a ScriptManager in this page (Default.aspx) too.

Remove the scriptManager inside the childPage, because this page is going to use the Site.master's one.

Remove:

 <asp:ScriptManager runat="server" ID="ScriptManager1" EnablePartialRendering="true"/>

Upvotes: 2

Related Questions