2013-05-01 52 views
0

我们,我创建了一个VB.NET应用程序,这是我第一次使用Session Variables。将Session变量传递给另一页Javascript

我想要做的是会话变量从一个页面(first.aspx)到另一个页面(second.aspx)通过URL传递。

这里是我想要做的一个例子:

first.aspx.vb页,我宣布一个会话变量,并给它分配一个值

Session("example") = "example123" 

然后,我通过这会话变量的first.aspx

Response.Write(Session("example")) 

,并通过JavaScript读取VALU的可变

<script type= text/javascript> 
    var SessionVar = '<%=Session("example")%>)'; 
</script> 

现在,我想要做电子商务是改变变量的值(例如将其设置为example456),然后将变量传递给second.aspx [例如与window.open()],这样的网址不包含变量的值,但它的名字:

url/second.aspx?value=exampleAND NOTurl/second.aspx?value=example456

逸岸我不希望用户阅读VALU e的变量。

最后,我必须通过Request.QueryString("value")读取second.aspx.vb中的会话变量的值,并执行各种操作。

可能吗?

如果不是,有anothe办法做到这一点

感谢您的帮助:)

回答

1

设置会话变量从JavaScript可以像下面这样做:

  1. 在第一页上创建一个隐藏字段控制

    <asp:HiddenField ID="HiddenField1" runat="server" /> 
    
  2. 客户端脚本来设置隐藏字段

    的价值
    function setVal(value) { 
        // if using jQuery 
        $("#<%= HiddenField1.ClientID%>").val(value); 
    
        // if using javascript 
        var hf = document.getElementById("<%= HiddenField1.ClientID%>"); 
        hf.value = value; 
    } 
    
  3. 创建按钮或链接以导航到第Ë第二页

    <asp:Button ID="Button1" runat="server" Text="Go to second page" OnClick="NavigateToSecondPage" /> 
         or 
    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="NavigateToSecondPage">Go to second page</asp:LinkButton> 
    
  4. 在后面的第一个页面代码,创造NavigateToSecondPage子来处理按钮的onclick事件/链接

    Protected Sub NavigateToSecondPage(sender As Object, e As EventArgs) 
        Session("example") = HiddenField1.Value 
        Response.Redirect("SecondPage.aspx") 
    End Sub 
    

因此,在第二页,你可以访问Session(“示例”)值,并且它将具有由第一页中的客户端脚本设置的新值。

1

会话变量被称为这种方式,因为他们是在同一会话内从一个页面自动传递到其他,所以你应该随时修改变量的值,然后在第二页中再次访问它以查找值。你不需要明确地传递任何信息。

+0

因此,如果我改变了页面中变量的值,这个新值将从我使用该变量的所有其他页面中读取? – user2217039 2013-05-01 10:24:58

+0

是的,如果你已经实施你的会议的权利。看看谷歌,有很多关于如何做到这一点的材料。 – 2013-05-01 10:29:25

+0

好的,但我不知道的是我如何设置会话变量的值与Javascript的变量的值。再次感谢 – user2217039 2013-05-01 14:18:19