在Jquery的ASP .NET中通过Session传递CheckBox值

时间:2017-08-16 19:57:56

标签: javascript jquery asp.net session-variables

我没有运气就尝试了很多关于这个问题的解决方案,我需要通过会话变量将一个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))

所有我需要的是从上一页读取此复选框的值。我花了很长时间。有什么建议吗?

2 个答案:

答案 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_"] %>将成为TrueFalse作为字符串。如果你真的需要javascript来设置复选框状态,你需要做这样的事情:

<script type="text/javascript">
    var isChecked = '<%= Session["chkSD_"] %>';

    if (isChecked == 'True') {
        //do something
    }
</script>