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 に答える
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 に答える