-2

如何使用 javascript 将此值从隐藏字段存储到 cookie/会话

function SelectedRowsHidden() {
                var hiddenField = $("#<%= SelectedRowsState.ClientID %>");
                var selectedValues = "";

                for (var row in selectedRows) {
                    if (selectedRows[row])
                        selectedValues = selectedValues + row;
                }
                //hiddenField.val(selectedValues); //selectedvalues must be stored on cookie or session
                //codes for cookies / session
            }

创建 cookie / session 后,我将如何将其传递给另一个 session。

function restoreSelectedRows(){
                //var getRowState = document.getElementById('<%= SelectedRowsState.ClientID %>').innerHTML;
                var getRowState = $("#SelectedRowsState").val(); // gives me undefined value
                $("#jqGrid").jqGrid('setSelection', getRowState, true);
                //code here
            }

我真的不知道我将如何实现这一目标。谢谢

4

1 回答 1

0

请检查此代码。在这里我尝试涵盖以下几点:

1.) 使用 Javascript 创建 cookie。

2.) 在另一个页面上使用会话读取 Cookie 值。

我想在此之前清除一件事,因为会话是服务器端功能,所以您无法在 javascript 中设置会话。

使用 javascript 编写 cookie 的第一页:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
    function writeCookie() {
        var exdays = null;//Specify how much days you want cookie age
        var value = document.getElementById('HiddenField1').value;
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + exdays);
        var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
        document.cookie = "TestCookie=" + c_value;//Cookie name with value

    }
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="Button1" runat="server" Text="Click" 
        OnClientClick="writeCookie();"/>
    <asp:HiddenField ID="HiddenField1" runat="server" Value="HiddenFieldValue" />
</div>
</form>

使用 Session 读取 Cookie 的第二页:

ASPX 文件:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
   <title></title>
 </head>
 <body>
<form id="form1" runat="server">
<div>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
 </html>

CS文件:

protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie aCookie = Request.Cookies["TestCookie"];
    if (aCookie != null)
    {
        Label1.Text = aCookie.Value;
        session["hiddenvalue"] = aCookie.Value;
    }
    else
    {
        //Cookie not set.
    }
}

希望这能解决您的疑问,如果仍然缺少某些东西,请告诉我。

于 2013-04-16T10:02:35.617 回答