2012-04-03 56 views
1

我们正在使用SharePoint 2007 我们初始化页面加载 会话变量后,失去了状态,我们有一个JavaScript函数如下会议javascript函数调用

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

但调用这个我们正在失去会话值后提到。 如果我们去掉__doPostBack( 'btnCaseSearch', '点击'); 然后每当页面加载时会显示警报,但会话不会丢失其值。 如何保持会话请帮助或建议一些替代_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()不会被调用,然后代码工作perferctly

感谢

+0

的sceneario是这样 javascript函数 功能backclick下面() { __doPostBack( 'btnCaseSearch', '点击'); alert('选择搜索条件。“); } 功能检查(){ 如果 (会话== “真”) { 做点什么 } 其他 { else部分 } 下面的服务器端代码 的Page_Load(){ //初始化会话变量 session [“search”] =“true”; } 所以当backclick()javascript函数在那个时候被调用时会话正在失去它的状态,但是如果backclick()没有被调用,那么代码工作就会过时 – Rushikesh 2012-04-03 17:22:55

回答

3

一些东西,我跳了出来:

我们在初始化页面加载

会话变量是此页面加载服务器端

每次_doPostBack会导致页面加载执行,所以我相信这是你们的覆盖会话变量。

唯一途径会议将失去它的状态是:

  • 如果它被覆盖或删除(!使用断点来检查你不设置它的两倍)
  • 浏览器是不要在随后的请求上放弃cookie

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

+0

yes页面加载在服务器端。 我们正在为页面加载会话变量赋值“true” ,并且在JavaScript中我们正在检查会话值,但是我们将会话值设置为“null”而不是“true” – Rushikesh 2012-04-03 17:14:10

+0

@Rushikesh - 您确实如何检查这个值在JavaScript中(因为会话变量通常不会在客户端上结束) – 2012-04-04 07:53:58

+0

下面是我们用来检查javascript中会话值的代码 var btn =“<%= Session [”sessionName“]%>” ; 如果(BTN ==“点击”) {} – Rushikesh 2012-04-04 08:10:39