将滑块值从 jQuery 传递到代码隐藏
Pass Slider Values from jQuery to Code Behind
我正在使用 ASP.NET 和 C# 作为代码隐藏。问题是,我在我的代码中放了一个 jQuery 滑块,但我无法将滑块中的值导入 C#(已经在网络上到处查看),我需要它们,因为滑块值必须作为我正在做的项目的过滤器(一个你可以购买产品的网站)。
我知道您不能直接从 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>
现在,它是这样的:
"amount" 只是在 "Precio" 标签中展示滑块的值。
我需要一个变量并将其传递给 ASP 然后传递给 C#,我该怎么做?
所以基本上,当我点击标记为红色的按钮时,我想在 C# 中获得最小和最大选定值,因为我必须将它们传递到项目的不同层。
我已经尝试在 asp 上使用隐藏类型将 jQuery 值放入其中,但是当我尝试从 C# 中的隐藏类型获取值时,我得到的只是空值。
您需要使用 HTTP POST post 返回 asp.net。
您似乎正在使用 Asp.Net Web 表单,因此您可以注册到滑块的更改事件。检查 this documentation
您可以使用 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" />
像在 post 中那样将值放入其中:
$("#myValueField").val(ui.values[0] + "€ - " + ui.values[1] + "€");
确保隐藏字段位于您的 Page-Form-Control 内,并且您的按钮导致服务器端 post返回。
无需任何隐藏字段或 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"/>
那么在Code Behind中,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...
我正在使用 ASP.NET 和 C# 作为代码隐藏。问题是,我在我的代码中放了一个 jQuery 滑块,但我无法将滑块中的值导入 C#(已经在网络上到处查看),我需要它们,因为滑块值必须作为我正在做的项目的过滤器(一个你可以购买产品的网站)。 我知道您不能直接从 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>
现在,它是这样的:
"amount" 只是在 "Precio" 标签中展示滑块的值。 我需要一个变量并将其传递给 ASP 然后传递给 C#,我该怎么做?
所以基本上,当我点击标记为红色的按钮时,我想在 C# 中获得最小和最大选定值,因为我必须将它们传递到项目的不同层。
我已经尝试在 asp 上使用隐藏类型将 jQuery 值放入其中,但是当我尝试从 C# 中的隐藏类型获取值时,我得到的只是空值。
您需要使用 HTTP POST post 返回 asp.net。 您似乎正在使用 Asp.Net Web 表单,因此您可以注册到滑块的更改事件。检查 this documentation
您可以使用 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" />
像在 post 中那样将值放入其中:
$("#myValueField").val(ui.values[0] + "€ - " + ui.values[1] + "€");
确保隐藏字段位于您的 Page-Form-Control 内,并且您的按钮导致服务器端 post返回。
无需任何隐藏字段或 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"/>
那么在Code Behind中,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...