2011-06-07 33 views
9

這是我的問題。我有一個隱藏的字段,其值通過JavaScript方法更改。問題是回發後數值丟失。在js中分配的隱藏值在回發後丟失

如何在回發後保留值?

謝謝!

.aspx文件

<asp:HiddenField ID="HiddenField1" runat="server" /> 
<asp:Button ID="BtnGuardar" runat="server" OnClick="BtnGuardar_Click" OnClientClick="return GridUpdateInfoOK()" /> 

js文件

document.getElementById('<%= HiddenField1.ClientID %>').value = 'TEST'; 

.aspx.cs文件

protected void BtnGuardar_Click(object sender, EventArgs e) 
{ 
    String test = HiddenField1.Value; 
} 
+0

你能告訴我們的HTML,因爲它是發送到瀏覽器?我不知道如何將ASP.net的東西轉換爲HTML,畢竟這是JavaScript必須使用的東西。 – 2011-06-07 18:49:12

+2

你是否證明你所包含的行被調用的javascript方法?你是否在隱藏域上將EnableViewState設置爲true? – Chad 2011-06-07 18:50:04

+1

如果這個js代碼真的像你說的那樣在一個「.js文件」中,那麼它不會起作用。 Scriptlet(轉義爲C#代碼)僅在aspx/ascx文件中解析。 – 2011-06-07 19:08:25

回答

12

您不需要在服務器上運行隱藏輸入。你可以這樣做:

<input type="hidden" id="HiddenInput" name="HiddenInput" value="" /> 

然後當你回來後,你可以像訪問:

protected void BtnGuardar_Click(object sender, EventArgs e) 
{ 
    String test = Request.Form["HiddenInput"]; 
} 
+1

謝謝馬爾託,工作! – Gonzalo 2011-06-09 21:30:18

+0

Request.Form [「HiddenInput」]在OnInit方法中不起作用? – 2012-08-05 06:03:30

+0

謝謝救了我的命。 – alternatefaraz 2017-09-19 16:41:38

5

這並不喜歡這項工作。該值自PageLoad後不存在,因此不會被回發。嘗試使用style =「display:none」的TextBox。

+0

如果它是一個文本框或一個隱藏字段,它會產生什麼影響嗎?我嘗試添加到我的aspx文件:,在我的js文件中分配一個值,但沒有運氣。 – Gonzalo 2011-06-07 19:08:09

+0

對不起,它工作!但我仍然不明白爲什麼它在使用文本框時起作用,並且在使用隱藏字段時不起作用。兩者都翻譯爲輸入元素。 – Gonzalo 2011-06-07 19:11:53

+1

是的,好吧,TextBoxes用於用戶輸入,因此它們在PageLoad時爲空但會以新值發佈。 HiddenFields是隱藏的,因爲你不想讓客戶端改變它的值,所以它被保留。 – noinstance 2011-06-07 19:15:48

0

請使用

<asp:HiddenField ID="HiddenField1" runat="server" EnableViewState="true"/> 

然後我們就會回傳後的值。

所有HiddenField的有波紋管的特性:

<asp:HiddenField 
    EnableTheming="True|False" 
    EnableViewState="True|False" 
    ID="string" 
    OnDataBinding="DataBinding event handler" 
    OnDisposed="Disposed event handler" 
    OnInit="Init event handler" 
    OnLoad="Load event handler" 
    OnPreRender="PreRender event handler" 
    OnUnload="Unload event handler" 
    OnValueChanged="ValueChanged event handler" 
    runat="server" 
    SkinID="string" 
    Value="string" 
    Visible="True|False" 
/>