2016-03-03 59 views
0

動態生成的屬性值我有一個表格,我在標記中設置默認值的隱藏字段:獲取有關點擊

<input id="hiddenField" type="hidden" runat="server" value="0" /> 

我動態設置通過客戶端JS功能的字段的值。 ..that工作和我場結束了看起來像:

<input id="hiddenField" type="hidden" runat="server" value="7" /> 

什麼即時試圖做的就是抓住這個按鈕被點擊時值:

<asp:Button ID="Button" runat="server" OnClick="Button_Click" Text="Submit" CssClass="btn" /> 

從那裏用它在我的代碼後面執行某些操作。

protected void Button_Click(object sender, EventArgs e) 
    { 
     string itemToCheck = hiddenField.Value; 
     //do something with itemToCheck 
    } 

問題是返回的值是0,這是默認值。正如我所提到的,價值是通過客戶端JS改變的,我確認這個部分是可行的。這樣做的目的是創建一個可以提交用於檢查值的變量,即使是簡單的東西,如:

if (itemToCheck >= 2){ 
    //do something 
} 

...所以我不是綁在隱藏字段,或者該值屬性重要的......只是用它作爲一種方法來將值從一個點傳遞到另一個點。

此外,即使我能夠使用JS來設置屬性解決方案需要在C#中使用結果根據需要....除非在JS中做一個方法,並將結果傳遞給C# 。

+0

如何的'默認值0'被設置?只是在標記或「Page_Load」中?如果它被設置爲'Page_Load'而不被'!IsPostBack'保護,那麼頁面加載將覆蓋後發回的默認值。 – vcsjones

+0

其設置在標記 –

回答

1

您可以將正常的ASP.Net文本框添加到頁面,然後在客戶端加載頁面時將其隱藏。然後,您可以使用JavaScript和jQuery來操縱該值。

<script> 
    $(document).ready(function() { 
     $('input#<% =txtTest.ClientID %>').val(9); 
     $('input#<% =txtTest.ClientID %>').hide(); 
    }) 
</script> 

然後,你可以閱讀在服務器端的文本框的值:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     var x = txtTest.Text; 
    } 
+0

是......這工作。謝謝! –