2012-04-03 57 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