2014-07-01 58 views
1

我如何實現從代碼隱藏的c#通過使用JavaScript傳遞到本地存儲的字符串?如何將字符串從asp.net代碼傳遞到本地網絡存儲?

我試圖通過HiddenField和Session緩存傳遞字符串,但是我沒有通過檢索JavaScript中的字符串將其存儲在本地存儲中。 我在c#中獲得了一個onclick函數來接收一個字符串並將其寫入會話緩存中。之後,我嘗試通過js中的一個函數檢索字符串,在此處我讀取會話緩存並將其寫入本地存儲中。但結果總是空的,除了一些測試,我用靜態字符串填充頁面加載函數中的會話緩存。

有沒有人懷疑我的解決方案中的問題?

我很感激你的意見。

編輯:

首先我按鈕「BTN1」寫的MyString爲高頻,然後「BTN2」在JS在本地存儲讀取並存儲它。

HTML代碼

<asp:HiddenField ID="hiddenVar" runat="server" ClientIDMode="Static" /> 

<asp:Button ID="btn1" runat="server" OnClick="writeInHiddenField" /> 
<asp:Button ID="btn2" runat="server" OnClientClick="writeHfInLS()" /> 

<script> 
    function writeHfInLS() { window.localStorage.setItem('key', document.getElementById("hiddenVar").value); } 
</script> 

代碼C# - 功能背後

writeInHiddenField() { hiddenVar.Value = myString; } 
+0

那你試試?你會得到什麼錯誤? – SLaks

+0

我用一些代碼擴展了我的問題。沒有錯誤,但是當我調用JS中的document.getElementById(「hiddenVar」)。值時,顯然將該值設置回初始值。就像網站重新加載或者我在兩個不同的命名空間或類似的工作。 – tvelop

+0

好的,我將UpdatePanel中的asp:Button移出了現在它可以正常工作。 – tvelop

回答

1

隱藏字段會工作。假設web表單,使用ASP:隱藏字段:

document.getElementById("LocalStore").value 

或JQuery的:

<asp:HiddenField ID="LocalStore" runat="server" ClientIDMode="Static" /> 

然後,您可以通過檢索

$("#LocalStore").val(); 
+0

好吧,但是當我在JS中調用document.getElementById(「hiddenVar」).value的值時,顯然將該值設置回初始值。就像網站重新加載或者我在兩個不同的命名空間或類似的工作。 (我用一些代碼擴展了我的問題) – tvelop

+0

好的,您的代碼在第一次設置值時在哪裏?可能在頁面加載事件中,您在設置它之前是否有Not Page.IsPostBack檢查? –

+0

該值只在c#中設置(function writeInHiddenField(){hiddenVar.Value = myString;}) – tvelop

相關問題