We are using multiple slider extenders on a page, and on some of them it kind of skips steps. For example, one slider has the values minimum 0 and maximum 10, and the steps property is set to 10. But when you slide it, it always skips 5, so you go from 1-4 and then skip 5 and then 6-10. So you can never choose 5.
The same happens on many of the sliders on the page (even though they have different minimums, maximums and step values).
Any idea on what we have messed up?
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>
Code-behind:
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());
I’ve found that setting the steps related to “discrete steps”, what it’s actually means is left to be clearly defined (for my understanding).
But when then minimum value of the slider is 0 ,then you need to add 1 to the actual value of your steps.
i.e : if slider1.Max =5 and slider1.Min =0 and slider1.steps=5 then then value 2 will be skipped in favor of 3.
The rationale behind if im right is that it actually divide the range in 2 equal part and if the mean point is a decimal it rounds it to the higher integer and jump that one.
Thanks