ページにスライダーがあり、ユーザーがスライドすると (分単位)、現在の選択の「きれいな」バージョンが表示されるように設定したいと考えています。たとえば、スライダーが「60」にある場合は「1 時間」と表示され、「65」にある場合は「1 時間 5 分」と表示されます。
最善のアプローチは何ですか?MaskedEditExtender コントロールのカスタム マスクである場合、どうすればこれを実現できますか? C# でコード ビハインドを作成しましたが、マウスを離したときにコードを変更するのではなく、スライダー自体が動いているときにコードを変更したくありません。
うまくいけば、私は理にかなっています!前もって感謝します。:)
現在のスライダーは次のとおりです。
<div class="controlColumn">
<asp:TextBox ID="Slider1" runat="server" Width="400px" AutoPostBack="True"></asp:TextBox>
<ajaxToolkit:SliderExtender runat="server" ID="sPrepTime" Minimum="0" Maximum="1440" Decimals="0" Steps="288" TargetControlID="Slider1" BoundControlID="Slider1_BoundControl" Orientation="Horizontal"></ajaxToolkit:SliderExtender>
<asp:TextBox ID="Slider1_BoundControl" runat="server" Width="100px" OnTextChanged="Slider1_BoundControl_TextChanged" TextMode="Number" AutoPostBack="True"></asp:TextBox>
<asp:Label ID="lblPrepTime" runat="server"></asp:Label>
</div>
マウスがスライダーの選択を停止すると、OnTextChanged がトリガーされます。
アップデート
必要なものを AJAX スライダーで動作させることができませんでしたが、以下に提供されている JavaScript を使用して Jquery UI スライダーに移動しました。私のjqueryコードは次のとおりです。
$(function() {
$( "#slider" ).slider({
value:0,
min: 0,
max: 1440,
step: 5,
slide: function( event, ui ) {
$("#MainContent_amount2").val(ui.value);
$('#MainContent_lblPrepTime').text(minutesToText(ui.value));
}
});
$("#MainContent_amount2").val($("#slider").slider("value"));
});
Jquery UI の詳細については、http: //jqueryui.com/slider/#defaultをご覧ください。