C# javascript函数调用后会话失去状态
我们正在使用Sharepoint 2007 我们在页面加载时初始化会话变量 我们有一个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'); 然后,每次页面加载时都会显示警报,但会话不
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);
}
}