2010-07-29 89 views
0

我有一個組件確定回發事件的值。在回發後設置隱藏字段值

protected void Button_Click(object s, EventArgs e) 
{ 
    HiddenField.Value = 5; 
} 

當然值有更多的參與,但HiddenField是一個asp:HiddenField控件與runat =服務器設置。我在我的javascript:

var id = $("#<%= HiddenField.ClientID %>").val(); 

中的JavaScript代碼設置爲只運行回傳已發生(不同的客戶端點擊事件),用於通過查詢字符串傳遞隱藏字段值到另一個網址的目的後, (因爲我無法對回發進行響應重定向,客戶希望它在不同的頁面中)。

我嘗試添加:

ScriptManager.RegisterHiddenField(HiddenField, "Value", string.Empty); 

對代碼Page.IsPostback部分,但在運行JavaScript的ID還是不能設置。

+0

你確定你沒有覆蓋的地方你的價值?是enableviewstate?我首先看服務器端。 – Peter 2010-07-30 08:56:28

回答

0

您可以在主頁上添加全局js變量,然後設置該變量而不是隱藏字段。

Page.aspx

<script> 
    var id=''; 
</script> 

Page.aspx.cs

protected void btn_Click(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "updateJavaScriptId", "id='5';", true); 
} 
0

Here是一個類似的問題。也許你可以用它來修改你正在做的事情。

您是否需要像這樣訪問客戶端ID?只要不在中繼器或其他設備中,您應該可以爲控件設置標識,但不會出現問題。這可以簡化你想要做的事情。

在這個例子中,他們使用getElementById來獲取隱藏字段並傳遞HiddenField的ID。

+0

這並不是說我沒有訪問隱藏字段的值屬性。這就是隱形領域在回傳之後沒有價值(或者在那之前)。當我回發後做html的視圖源時,我期望看到在該字段中設置的值計算。 – SpaceCowboy74 2010-07-29 21:58:37

+0

您是否可以更新您的問題以將標籤包含在aspx頁面中,以便我們可以查看其中的屬性?此外,Page_Load()中的任何代碼也很好看。 – kniemczak 2010-07-30 14:06:03