我正在使用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'));
});
答案 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);
}
如果我不理解你的问题,请告诉我。