我没有运气就尝试了很多关于这个问题的解决方案,我需要通过会话变量将一个asp形式的复选框值传递给另一个,但是我无法在ASP .NET中完成这个简单的操作。 在form1中的代码中,我编写了如下代码:
Session["chkSD_"] = chkSD.Checked;
在form2的ASPX中,我执行以下操作:
if(((document.getElementById("ContentPlaceHolder1_ddlResponsibility").value == "2") && (document.getElementById("ContentPlaceHolder1_txtFinalized") != null && document.querySelectorAll(' <%= Session["chkSD_"] %>)').value))
所有我需要的是从上一页读取此复选框的值。我花了很长时间。有什么建议吗?
答案 0 :(得分:0)
会话数据不能直接供客户端访问。我们有一种方法可以做到这一点。在表单2上有一个隐藏字段,并在页面加载事件
中的隐藏字段中保存会话的值HiddenField1.Value = Session["chkSD_"].ToString();
然后在第二个表单的客户端,从隐藏字段中获取值
var val = document.getelementbyid(<%=HiddenField1.ClientID %>).value;
答案 1 :(得分:0)
您需要将Session转换回布尔值。
chkSD.Checked = Convert.ToBoolean(Session["chkSD_"]);
编写会话内联将导致布尔值的字符串值,因此<%= Session["chkSD_"] %>
将成为True
或False
作为字符串。如果你真的需要javascript来设置复选框状态,你需要做这样的事情:
<script type="text/javascript">
var isChecked = '<%= Session["chkSD_"] %>';
if (isChecked == 'True') {
//do something
}
</script>