簡體   English   中英

將 Slider 值從 jQuery 傳遞到代碼后面

[英]Pass Slider Values from jQuery to Code Behind

我使用 ASP.NET 和 C# 作為代碼隱藏。 The thing is, I've put a jQuery Slider in my code but I can't get the values from the slider into C# (already looked everywhere on the web) and I need them because the Slider Values must act as filters for the project我正在做(web,您可以在其中購買產品)。 我知道您無法直接從 jQuery 到 C# 獲取值,但我嘗試將它們傳遞給 ASP.NET 並且似乎仍然無法訪問。

  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
      $(function () {
          $("#slider-range").slider({
          range: true,
          min: 0,
          max: 3000,
          values: [ 50, 500 ],
          slide: function( event, ui ) {
              $("#amount").val(ui.values[0] + "€ - " + ui.values[1] + "€");      
      }
          });

        $( "#amount" ).val($( "#slider-range" ).slider( "values", 0 ) +
            "€ - " + $("#slider-range").slider("values", 1) + "€");
      } );
  </script>
<p>
  <asp:Label for="amount" runat="server">Precio:</asp:Label>
  <input type="text" id="amount" readonly style="border:0; color:#f6931f; font-weight:bold;">
</p>


<div id="slider-range">
</div>

現在,這就是它的樣子:

圖片

“金額”只是展示了“Precio”Label 中 slider 的值。 我需要一個變量並將其傳遞給 ASP,然后傳遞給 C#,我該怎么做?

所以基本上,當我點擊標記為紅色的按鈕時,我想同時獲得 C# 中的最小和最大選定值,因為我必須將它們傳遞給項目的不同層。

我已經嘗試在 asp 上使用隱藏類型將 jQuery 值放入其中,但是當我嘗試從 C# 中的隱藏類型中獲取值時,我只得到空值。

您需要使用 HTTP POST 回帖到 asp.net。 看來您正在使用 Asp.Net Web Forms,因此您可以注冊到 slider 的更改事件。 檢查此文檔

您可以使用 asp.net MVC 執行此操作:

$(".btnSend").click(function(){
  $.post("/Controller/Action", { amount: $('#amount').val() }, function(data, status){
    //Response callback
    alert("Data: " + data + "\nStatus: " + status);
  });
});

要將數據從 javascript 傳遞到代碼隱藏,您可以將數據放在代碼隱藏已知的元素中,這意味着元素,例如隱藏字段:

<asp:HiddenField ID="myValueField" ClientIdMode='STATIC' runat="server" />

像您在帖子中所做的那樣將值放入其中:

$("#myValueField").val(ui.values[0] + "€ - " + ui.values[1] + "€");

確保隱藏字段位於您的 Page-Form-Control 內,並且您的按鈕導致服務器端回發。

不需要任何隱藏字段或 ajax,只需將您的輸入更改為文本框。 代替

<input type="text" id="amount" readonly style="border:0; color:#f6931f; font-weight:bold;">

<asp:TextBox ID="amount" ClientID="amount" ClientIDMode="static" runat="server" Style="border:0; color:#f6931f; font-weight:bold;" ReadOnly="True"/>

然后在后面的代碼中, amount字段的值將是您想要的兩個值。 通過一些字符串操作來解析值,也許:

var amt = amount.Value; // You may need to do something more here to get the value; it's been a
                        // few years since I worked with webforms...
var split = amt.Split(" - ");
var first = split[0].Replace("€", "");
var second =split[1].Replace("€", ""); 
// Do what you need to do with first and second...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM