Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# javascript函数调用后会话失去状态_C#_Javascript_Asp.net_Sharepoint_Session State - Fatal编程技术网

C# javascript函数调用后会话失去状态

C# javascript函数调用后会话失去状态,c#,javascript,asp.net,sharepoint,session-state,C#,Javascript,Asp.net,Sharepoint,Session State,我们正在使用Sharepoint 2007 我们在页面加载时初始化会话变量 我们有一个javascript函数,如下所述 function backclick() { __doPostBack('btnCaseSearch', 'Click'); alert('Select the Search Criteria.'); } 但调用此函数后,我们将丢失会话值。 如果我们删除uu doPostBack('btncasearch','Click'); 然后,每次页面加载时都会显示警报,但会话不

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

function backclick()
{
 __doPostBack('btnCaseSearch', 'Click'); 
alert('Select the Search Criteria.');
}
但调用此函数后,我们将丢失会话值。 如果我们删除uu doPostBack('btncasearch','Click'); 然后,每次页面加载时都会显示警报,但会话不会丢失其值。 如何维持会话请帮助或建议一些替代_doPostBack()的方法

景色是这样的 下面是javascript函数

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

function check()
{
var btn ="<%=Session["search"]%>";
if(btn == "true")
{
do something
}
else
{
else part
}
所以,当在那个时候调用backclick()javascript函数时,会话将失去其状态,但若没有调用backclick(),则代码工作正常


谢谢

我突然想到一件事:

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

此页面是否加载到服务器端

每次
\u doPostBack
都会导致执行pageLoad,因此我相信这就是覆盖会话变量的地方

会话释放其状态的唯一方法是:

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

检查这两个选项,如果您的问题没有解决,请发布您的发现。

是的,页面加载在服务器端。我们在页面加载时给会话变量赋值,比如说“true”,在javascript中我们检查会话值,但是我们得到的会话值是“null”而不是“true”@Rushikesh-您在javascript中是如何检查这个值的(因为会话变量通常不会出现在客户端上)下面是我们在javascript var btn=“”)中检查会话值的代码;如果(btn==“clicked”){}@Rushikesh在这种情况下,我相信您正在页面加载中重置是的,我们正在页面加载中设置它,但在javascript中显示为空,场景如下javascript函数backclick(){{uuuudopostback('btncasearch','Click');alert('Select the Search Criteria');}函数check(){if(session==“true”){do something}else{else part}在服务器端代码页_Load(){//初始化会话变量session[“search”]=“true”;}因此,当调用backclick()javascript函数时,会话将失去其状态,但如果没有调用backclick(),则代码工作正常
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);

}
}