虽然我经常使用jQuery UI组件,但我几乎没有做过任何修改,但我对JavaScript和jQuery相当陌生。在这种情况下,我需要调整jQuery Slider来调整日期,并且我创建了如下内容:http://jsfiddle.net/ryn_90/Tq7xK/6/。asp:HiddenField从JavaScript获取值按钮变量点击
到目前为止我对此感到满意,现在我得到了滑块的工作,我希望能够从JavaScript属性或HTML中绑定C#HiddenValue,这样我就可以保存我的日期。除非有更好的方法来获得这个值到后端...
到目前为止,我已经能够绑定来自c#变量的JavaScript值,但还没有找到如何做到另一种方式。
这是我的javascript代码:
<script>
$(function() {
$("#dialog").dialog({
autoOpen: false,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
}
});
jQuery(function() {
var dlg = jQuery("#sliderPopup").dialog({
draggable: true,
resizable: true,
show: {
effect: "blind",
duration: 1000
},
hide: {
effect: "explode",
duration: 1000
},
width: 320,
autoOpen: false,
minHeight: 10,
minwidth: 10
});
dlg.parent().appendTo(jQuery("form"));
});
$("#popupOpener").click(function() {
$("#dialog").dialog("open");
});
$("#sliderPopupOpener").click(function() {
$("#sliderPopup").dialog("open");
});
});
$(function() {
$("#slider").slider({
max: 30,
min: -30,
value: 0,
slide: function (event, ui) {
$("#days").val(ui.value);
$("#date").text(addDaysToDate(parseInt($("#days").val())));
},
create: function (event, ui) {
$("#date").text(addDaysToDate(parseInt($("#days").val())));
}
});
});
$("#days").val($("#slider").slider("value"));
$("#days").change(function (event) {
var data = $("#days").val();
if (data.length > -30) {
if (parseInt(data) >= 0 && parseInt(data) <= 30) {
$("#slider").slider("option", "value", data);
}
else {
if (parseInt(data) < -30) {
$("#days").val("-30");
$("#slider").slider("option", "value", "-30");
}
if (parseInt(data) > 30) {
$("#days").val("30");
$("#slider").slider("option", "value", "30");
}
}
}
else {
$("#slider").slider("option", "value", "0");
}
$("#date").text(addDaysToDate(parseInt($("#days").val())));
});
function addDaysToDate(days) {
var mths = new Array("Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec");
var d = new Date(<%=deadlineYear%>, <%=deadlineMonth%>, <%=deadlineDay%>);
d.setHours(d.getHours() + (24 * days));
var currD = d.getDate();
var currM = d.getMonth();
var currY = d.getFullYear();
return mths[currM] + " " + currD + ", " + currY;
}
jQuery(function() {
var dlg = jQuery("#sliderPopup").dialog({
draggable: true,
resizable: true,
show: 'Transfer',
hide: 'Transfer',
width: 320,
autoOpen: false,
minHeight: 10,
minwidth: 10
});
dlg.parent().appendTo(jQuery("form"));
});
</script>
这是asp.NET代码:
<div id="sliderPopup" title="Modify Deadline">
<div id="slider"></div>
<input type="text" id="days" value="0"/>
<div id="date"></div>
<asp:HiddenField ID="ModifiedDeadlineDateFromSlider" />
<asp:Button ID="DeadlineDateSave" Text="Save Deadline" runat="server" OnClick="saveDeadline" />
</div>
请让我知道如果你需要任何更多的信息。我会很感激你的回答和评论。
你想将文本框的值赋给asp:隐藏javascript的权利......? – Pandian 2013-03-13 09:37:44
@潘丹,是的。我可能会将文本框更改为隐藏的html字段,但这是无关紧要的。最重要的是我可以从我的后端C#代码中检索值。 – 2013-03-13 09:41:53