会话在javascript函数调用后失去其状态

时间:2012-04-03 11:00:28

标签: c# javascript asp.net sharepoint session-state

我们正在使用Sharepoint 2007 我们在页面加载时初始化会话变量 我们有一个javascript函数,如下所述

function backclick()
{
 __doPostBack('btnCaseSearch', 'Click'); 
alert('Select the Search Criteria.');
}

但是在调用它之后我们正在失去会话值。 如果我们删除__doPostBack('btnCaseSearch','Click'); 然后每次页面加载时都会显示警报,但会话不会丢失其值。 如何维护会话请帮助或建议一些替代_doPostBack()

sceneario是这样的 在javascript函数下面

function backclick()
{
 __doPostBack('btnCaseSearch', 'Click'); 
alert(result not found.');
}

function check()
{
var btn ="<%=Session["search"]%>";
if(btn == "true")
{
do something
}
else
{
else part
}

服务器端代码

Page_Load()
{
//initialise session variable
session["search"] = "true";
}
btnSearch_click()
{
 if(result not found)
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(),"page_index_script1", "backclick();", true);

}
}

所以当backclick()javascript函数被调用时,会话正在失去其状态但是如果没有调用backclick()那么代码就会完美地工作

由于

1 个答案:

答案 0 :(得分:3)

突然出现在我身上的东西:

  

我们在页面加载时初始化会话变量

此页面是否加载服务器端

每当_doPostBack导致pageLoad执行时,我相信这就是你覆盖会话变量的地方。

唯一的方式会话将松开它的状态:

  • 如果被覆盖或删除(使用断点检查你没有设置它两次!)
  • 浏览器未在后续请求中放弃cookie

检查这两个问题,如果你发现的问题没有解决问题。