JavaScript操作Session的问题.
请问各位高手可不可以在javascript 中读写Session?如可以,请给出示例,谢谢 问题点数:100、回复次数:13Top
1 楼adandelion(水源是CSDN最黑的地方,但这个最黑是CSDN一手制造的!)回复于 2005-08-04 17:05:42 得分 1
问题很菜(我也很菜),JAVASCRIPT在客户端运行,而SESSION在服务器端运行,它怎么可能操作session?Top
2 楼gxboy(Blin 小学生学.NET)回复于 2005-08-04 17:08:22 得分 35
<script>
var readfromsession
readfromsession = '<%=Session("string")%>'
</script>Top
3 楼zhangyang555(张阳)回复于 2005-08-04 17:13:15 得分 0
gxboy(Blin 小学生学.NET) 的方法可以读值,但如果要赋值怎么操作,谢谢.Top
4 楼baby21st(愚人|南京www.njci.net)回复于 2005-08-04 17:13:37 得分 10
这个操作只能是单向的
在JS中可以读取SESSION中的值
如果想更新SESSION的值,可以通过JS用URL参数传递给一个ASPX文件,由它改变SESSION值Top
5 楼adandelion(水源是CSDN最黑的地方,但这个最黑是CSDN一手制造的!)回复于 2005-08-04 17:17:18 得分 1
另外你可以在服务器端生成JS代码,这里面可以引用session,但这是静态的初始化.
想这样是可以的.前提是后台已经为其赋值了.
<script>
alert('<%=Session["aa"].ToString()%>');
</script>
-------------
算是能读吧,但不能写的.Top
6 楼pontus(pontus)回复于 2005-08-04 17:21:09 得分 1
js 调用 web services 改变sessionTop
7 楼gxboy(Blin 小学生学.NET)回复于 2005-08-04 17:26:53 得分 27
调用ws简直是把事情复杂化。
简单办法
<script>
function setsession(value)
{
window.open('setsession.aspx?value=' + value,'_myss')
}
</script>
<iframe name="_myss" marginwidth="1" marginheight="1" height="0" width="0" scrolling="no" border="0" frameborder="0">
</iframe>
setsession.aspx内容:
session("mysession")=Request("value")Top
8 楼hbb0b0(bobo)回复于 2005-08-04 20:05:10 得分 1
学习~Top
9 楼laok2yang(笨鸟——学习中)回复于 2005-08-04 20:16:39 得分 1
又学了一着Top
10 楼WZCNet(只有想不到,没有做不到)回复于 2005-08-04 20:25:13 得分 20
我有一个变通的方法,大家自已看一下,我刚试验出来,附源码。可以获取值和设置值
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test2003.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="javascript">
function getSession()
{
document.Form1.txt.value = '<%= Session["A"] %>';
return false;
}
function setSession()
{
document.Form1.Button1.click();
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<INPUT id="txt" style="Z-INDEX: 101; LEFT: 256px; POSITION: absolute; TOP: 80px" type="text"><INPUT style="Z-INDEX: 102; LEFT: 424px; WIDTH: 72px; POSITION: absolute; TOP: 80px; HEIGHT: 24px"
type="button" value="Get" onclick="getSession()"> <INPUT id="Button1" style="DISPLAY: none; Z-INDEX: 103; LEFT: 544px; WIDTH: 72px; POSITION: absolute; TOP: 104px; HEIGHT: 24px"
type="button" value="Temp" name="Button1" runat="server">
<asp:TextBox id="TextBox1" style="Z-INDEX: 104; LEFT: 256px; POSITION: absolute; TOP: 120px"
runat="server"></asp:TextBox><INPUT style="Z-INDEX: 105; LEFT: 424px; WIDTH: 72px; POSITION: absolute; TOP: 120px; HEIGHT: 24px"
type="button" value="Set" onclick="setSession()">
</form>
</body>
</HTML>
后台cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Test2003
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.HtmlControls.HtmlInputButton Button1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!IsPostBack)
{
Session["A"] = "wangzhaocai";
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.ServerClick += new System.EventHandler(this.Button1_ServerClick);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Button1_ServerClick(object sender, System.EventArgs e)
{
Session["A"] = this.TextBox1.Text;
}
}
}Top
11 楼adandelion(水源是CSDN最黑的地方,但这个最黑是CSDN一手制造的!)回复于 2005-08-04 20:36:17 得分 1
向楼上的大虾学习!~~~~~~Top
12 楼adandelion(水源是CSDN最黑的地方,但这个最黑是CSDN一手制造的!)回复于 2005-08-04 20:39:34 得分 1
function setSession()
{
document.Form1.Button1.click();
}
-----------------------------------
是客户端调用服务器端的事件吗?学习~~~~~~Top
13 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-08-04 20:54:27 得分 1
客户端操作SESSION这个无法实现,用变通的方法,麻烦而且效率低,效果死板,,
建议你考虑用COOKIE,他可以用JS来操作,..恩.Top




