2013-12-18 54 views
0

我見過很多相關的問題,但似乎無法弄清楚在這裏要做什麼。ASP.NET按鈕控件觸發客戶端代碼,在輪到觸發器服務器端代碼

我有一個asp隱藏字段控制定義爲

<asp:HiddenField ID="hField" runat="server"></asp:HiddenField> 

和一個按鈕控件定義爲:

<asp:Button ID="btn1" runat="server" usesubmitbehavior="false" onClientClick="return jsFunc()"/> 

JavaScript函數看起來是這樣的:

function jsFunc() { 
    document.getElementById("hField").Value = "someString"; 
    __doPostBack("btn1", ""); 
} 

最後,在我的代碼背後,我有以下功能:

Protected Sub btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn1.Click 
    ' // access hidden field hField 
End Sub 

但問題是,我分配給隱藏值在JavaScript中的值不持久回發。

我需要了解什麼或需要做什麼才能保持更新的隱藏字段值?

回答

2

答案很簡單。 Javascript區分大小寫,因此當您使用隱藏元素的Value屬性時,它會創建新屬性而不是將其設置爲屬性。

所以,你只需要更新的代碼如下:

function jsFunc() { 
    document.getElementById("hField").value = "someString"; 
    __doPostBack("btn1", ""); 
} 
+0

簡直不敢相信! –

1

您不應該從您的javascript函數調用__doPostBack()。如果你想取消/防止回發,javascript函數應該是return false

+0

它返回false;這是一個調用'__doPostBack'的回調函數。 –

相關問題