ASP.NET AJAX Slider跳过了一些步骤

时间:2012-04-26 16:30:53

标签: c# asp.net .net asp.net-ajax ajaxcontroltoolkit

我们在页面上使用多个滑块扩展器,其中一些滑块扩展器会跳过步骤。例如,一个滑块的值为最小值0和最大值10,并且steps属性设置为10.但是当它滑动时,它总是跳过5,所以你从1-4开始然后跳过5然后再跳到6-10 。所以你永远不能选择5。

页面上的许多滑块都会发生同样的情况(即使它们具有不同的最小值,最大值和步长值)。

关于我们搞砸了什么的任何想法?

.aspx的:

<p>
<span class="helpText">Number Music stream per hour</span>
<asp:HyperLink ID="lnkMusicStream" runat="server"></asp:HyperLink>
<span class="maptextimg">
    <img class="helpTxtImg" src="~/html/images/buttons/help_icon.png" alt="help" title="<%=getNoOfMusicStreamHelpText() %>" />
</span>
<span class="numbers">
    <asp:Label ID="lblMusicIntervals" runat="server" />
</span>
</p>
<p>
<span>
    <asp:TextBox ID="txtMusicStream" runat="server" AutoPostBack="true" />
    <span class="size">
        <asp:Label ID="lbltxtMusicStream" runat="server" /></span>
    <ajaxToolkit:SliderExtender ID="txtMusicStream_SliderExtender" runat="server" TargetControlID="txtMusicStream"
        BehaviorID="txtMusicStream" BoundControlID="lbltxtMusicStream" EnableKeyboard="true"
        TooltipText="{0}" HandleCssClass="handleBar" HandleImageUrl="~/html/images/buttons/handle.png">
    </ajaxToolkit:SliderExtender>
</span>
</p>

代码隐藏:

txtMusicStream_SliderExtender.Maximum = Sliders.GetSliderValues(SliderType.Streaming)["MaximumMusic"];
txtMusicStream_SliderExtender.Minimum = Sliders.GetSliderValues(SliderType.Streaming)["MinimumMusic"];
txtMusicStream_SliderExtender.Steps = int.Parse((txtMusicStream_SliderExtender.Maximum / Sliders.GetSliderValues(SliderType.Streaming)["MusicSteps"]).ToString());
txtMovieStream_SliderExtender.Steps = int.Parse((txtMovieStream_SliderExtender.Maximum / Sliders.GetSliderValues(SliderType.Streaming)["MovieSteps"]).ToString());

2 个答案:

答案 0 :(得分:3)

我发现设置与“离散步骤”相关的步骤,它实际上意味着什么是明确定义的(为了我的理解)。 但是当滑块的最小值为0时,则需要将1添加到步骤的实际值。

即:如果slider1.Max = 5且slider1.Min = 0且slider1.steps = 5,那么将跳过值2以支持3.

如果我正确的话背后的理由是它实际上将范围除以2相等的部分,如果平均点是小数,则将其舍入到更高的整数并跳过那个。

由于

答案 1 :(得分:1)

请验证您是否获得正确的值,包括“5”,因为您的代码看起来很好。

尝试在您的网页中使用这种简单的方法,如果这样做,那么你肯定错过了一些东西:

<cc1:SliderExtender ID="SliderExtender1" BoundControlID="slider1_display" Decimals="0"
     runat="server" TargetControlID="slider1" EnableHandleAnimation="true"
    TooltipText="{0}">
</cc1:SliderExtender>
<asp:TextBox ID="slider1" runat="server"></asp:TextBox>
<asp:Label ID="slider1_display" runat="server"></asp:Label>

代码背后:

SliderExtender1.Minimum = 0;
SliderExtender1.Maximum = 10;