【问题标题】:ASP.NET AJAX Slider skips stepsASP.NET AJAX Slider 跳过步骤
【发布时间】:2012-04-26 16:30:52
【问题描述】:

我们在一个页面上使用了多个滑块扩展器,其中一些会跳过步骤。例如,一个滑块的最小值为 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());

【问题讨论】:

  • 你试过不同的分辨率吗?也许鼠标实际上跳过了一些东西。
  • 是的,我试过几种浏览器、电脑和分辨率。所以这似乎不起作用。
  • asp ajax 滑块控件可能有一些错误,我之前尝试过但无法解决一些奇怪的问题,然后我去了Jquery UI。

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


【解决方案1】:

我发现设置与“离散步骤”相关的步骤,它的实际含义有待明确定义(据我所知)。 但是当滑块的最小值为 0 时,您需要在实际步数上加 1。

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

如果我是对的,其背后的基本原理是它实际上将范围分成 2 个相等的部分,如果平均点是小数,它会将其四舍五入到更高的整数并跳转。

谢谢

【讨论】:

    【解决方案2】:

    请验证您是否得到正确的值,包括“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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 2018-02-08
      • 2015-04-02
      相关资源
      最近更新 更多