2

我正在使用 jQuery UI 滑块,除此之外没有任何问题:我有一个 ASP.NET 隐藏字段,用于存储用户使用滑块选择的任何内容。比如说 25 或 50。我需要该服务器控件,以便在执行其他步骤后可以使用它的值。它可以工作,但是当页面进行回发时,滑块会恢复到原来的位置。换句话说,用户在滑块上选择了 50,发帖到服务器会检索 50 条记录。但是滑块会回到 25,因为那是它的初始值。如何解决此问题,以便将设置保存在隐藏字段控件(或用户选择的内容)中?

我在这里添加了代码:

 $(document).ready(function () {
        //setup slider
        $('#slider').slider({
            range: "max",
            min: 25,
            step: 25,
            max: 100,
            value: 75,
            slide: function (event, ui) {
                $('#radiusText').val(ui.value);
                //set the hiddenfield for server postback of radius
                $("#<%= Radius.ClientID%>").val(ui.value);
            }
        });
        $('#radiusText').val($('#slider').slider('value'));


    });
4

3 回答 3

3

看看 ASP 页面的 ispostback 属性

http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx

public string _hiddenvalue; //make it public so that you can read it
if(ispostback)
{
  _hiddenvalue = Request.Form["hiddenfield"];              
}

那么您所要做的就是将公共属性 _hiddenvalue 分配给您前端的一个变量

var _slideVal = <%= _hiddenvalue %>
于 2013-05-07T23:15:25.857 回答
1

我最终在滑块调用之外设置了一个变量,该变量获取隐藏字段的值,并将隐藏字段的初始值设置为 75。

        $(document).ready(function () {
        var setRadius = $("#<%= Radius.ClientID%>").val();
        //setup slider
        $('#slider').slider({
            range: "max",
            min: 25,
            step: 25,
            max: 100,
            value: setRadius,
            slide: function (event, ui) {
                $('#radiusText').val(ui.value);
                //set the hiddenfield for server postback of radius
                $("#<%= Radius.ClientID%>").val(ui.value);
            }
        });
        $('#radiusText').val($('#slider').slider('value'));
    });
于 2013-05-08T13:25:18.960 回答
0
function SetSlider()
    {   
              $('#slider').slider({
                    range: "max",
                    min: 25,
                    step: 25,
                    max: 100,
                    value: 75,
                    slide: function (event, ui) {
                        $('#radiusText').val(ui.value);
                        //set the hiddenfield for server postback of radius
                        $("#<%= Radius.ClientID%>").val(ui.value);
                    }
                });
    }

在服务器端,在 PageLoad 事件调用 javascript 函数。

if(!ispostback)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript",
   "javascript:SetSlider();", true);
}

如果我不太了解您的问题,请告诉我。

于 2013-05-08T13:33:00.453 回答