Если вы хотите сохранить состояние ползунка между постбэками, вам нужно либо получить значения ползунка в некоторые входные данные, которые фактически возвращаются на сервер, либо переместить ползунок за пределы панели обновлений и переместить инициализациюкод из pageLoad ().Для первого подхода:
Разметка:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:HiddenField ID="hfSliderHandle1" Value="25" runat="server" />
<asp:HiddenField ID="hfSliderHandle2" Value="75" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
Сценарий:
var $h1 = $('input[id$="hfSliderHandle1"]'),
$h2 = $('input[id$="hfSliderHandle2"]');
$("#slider-range").slider({
range: true,
min: 0,
max: 100,
values: [parseInt($h1.val()), parseInt($h2.val())],
slide: function (event, ui) {
$("#minval").val(ui.values[0] + " - " + ui.values[1]);
$h1.val(ui.values[0]);
$h2.val(ui.values[1]);
}
});
Возможно, выЯ могу проанализировать все, что есть в #minval
, чтобы сделать то же самое, но я ничего не знаю о природе этого элемента, поэтому я просто предоставляю решение как есть для вас, чтобы адаптировать концепцию по мере необходимости.Если, например, это было текстовое поле на панели обновлений, которое вы предварительно заполнили значением «25 - 75»:
var $minVal = $("#minval");
var h1 = parseInt(/^\d+/.exec($minVal.val())[0]),
h2 = parseInt(/\d+$/.exec($minVal.val())[0]);
$("#slider-range").slider({
range: true,
min: 0,
max: 100,
values: [h1, h2],
slide: function (event, ui) {
$minVal.val(ui.values[0] + " - " + ui.values[1]);
}
});