2010-12-09 32 views
0

當用戶在我的網站上選擇一個標籤時,我想存儲他們所在的標籤,這樣我可以在頁面刷新後將它們發回。我有這樣的時刻(藉口壞的編碼​​自動取款機,我測試的概念):在jquery.click中設置一個ASP.NET會話()

$("#index_0_li").click(function() { 
    <%= Session["SelectedIndex"] = "0" %> 
}); 

$("#index_1_li").click(function() { 
    <%= Session["SelectedIndex"] = "1" %> 
}); 

var index = <%= Session["SelectedIndex"] %>; 

的問題是,因爲<%= %>不等待上點擊,指數總是被設置爲1

有沒有人對我如何實現我想要做的事有任何想法?

謝謝。

+0

你需要做一個ajax回撥給服務器允許它在會話中存儲索引。 – 2010-12-09 11:00:50

+0

或者使用cookie代替。 – 2010-12-09 11:08:16

回答

5

只需使用客戶端會話 - 又名「cookies」。

在點擊事件中設置cookie,然後當您提交頁面(或「回發」)時,此cookie將與HTTP請求一起發送,允許您通過Request.Cookies來閱讀它。

+0

謝謝,沒有想到這一點。 – webnoob 2010-12-09 11:09:54

0

點擊功能是客戶端JavaScript。 您無法在客戶端上設置服務器端變量。 您應該設置所選的索引服務器,例如使用jquery文章。

1

正如El Ronnoco所說,如果你想在ASP.NET會話中選擇選項卡,那麼你需要將它發送回服務器。您可以通過AJAX調用完成此操作,也可以將其與您在應用程序中執行的另一篇文章一起使用。但是,如果您只想維護客戶端的選定選項卡,則可以像建議RPM1984一樣執行操作,並將其存儲在cookie(或其他本地存儲,如果允許使用HTML5)並選擇最後記錄在cookie中的選項卡/加載頁面時的本地存儲。以下是我的頭頂,所以可能有語法錯誤(我需要看你的標籤和其他標記做一個工作的解決方案):

$("#index_0_li").click(function() { 
    localStorage.setItem('SelectedTab', '#index_0_li'); 
}); 
$("#index_1_li").click(function() { 
    localStorage.setItem('SelectedTab', '#index_1_li'); 
}); 

$(document).ready(function() { 
    var index = localStorage.getItem('SelectedTab'); 
    if (index !== null) { 
     $(index).click(); 
    } 
});