jQuery Slider维护回发的价值

时间:2013-05-07 22:43:14

标签: jquery asp.net

我正在使用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'));


    });

3 个答案:

答案 0 :(得分: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 %>

答案 1 :(得分: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'));
    });

答案 2 :(得分: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);
                    }
                });
    }

在服务器端,On Page Load事件调用javascript函数。

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

如果我不理解你的问题,请告诉我。