【发布时间】:2013-08-21 15:08:03
【问题描述】:
我有一个购物车,对于产品交付的时间段选择,我想显示下一周的日期、第一列(每行中的每天)和另一列中的时间段,格式如下:
Column1 Column2
Aug 19, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 20, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 21, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 22, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 23, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 24, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
Aug 25, 2013 [RadioButton]10:00AM [RadioButton]12:00PM
我尝试使用带有radiobuttonlist 的gridview(用于时间槽),但问题是用户能够选择每天的时间。因此,作为替代方案,我正在尝试检查在 javascript 结束时选择的 TimeSlot,并且因为我希望下一个结帐向导可以访问 Slot,所以我想将选定的时间段存储在会话中。如果未选择,我可以验证时隙,如果选择,我可以在警报中获取值。但是,当我尝试将值从隐藏字段保存到会话时(在客户端单击按钮时保存),我没有将会话值保存到其他页面。以下是我正在尝试的代码:
<script>
function SaveToHiddenField() {
if ($("input:radio:checked").length > 0) {
$radio = $("input:radio:checked");
document.getElementById('<%= hdnField.ClientID %>').value = $radio.val();
<% Session["Slot"] = hdnField.Value; %>
window.location.href='default2.aspx'
return true;
}
else {
alert("Nothing Selected");
return false;
}
}
</script>
<asp:Button ID="btnSession" runat="server" Text="Save to Session" OnClientClick="return SaveToHiddenField()" />
<asp:HiddenField ID="hdnField" runat="server" />
谁能告诉我我做错了什么,或者任何其他可能是我查询的更好选择的替代方法。
【问题讨论】:
-
客户端 javascript 无法直接访问会话变量,因为客户端 javascript 运行在客户端上,而会话变量存在于服务器上。
-
嗨@KevinB 感谢您的及时回复,您能告诉我还有其他可能的解决方案吗?
-
@Abbas 可以使用 ajax,尽管值被保存到隐藏字段。为什么不能在回发期间通过单击保存按钮阅读并更新会话?
-
是的,使用 cookie,或者向服务器发送一个 ajax 请求,其中包含您希望放入会话中的数据,或者在执行 window.location 时将该数据作为 GET 参数传递。跨度>
-
嗨@JasonP,你的意思是我需要一个回发来将隐藏字段值保存到会话变量中,我不能同时存储它,就像我在上面的例子中所做的那样,您可以检查,在将值保存到隐藏字段的下一行,我也将它存储在 Session 变量中,但这不起作用
标签: jquery asp.net radio-button session-variables