2013-12-18 26 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'的回调函数。 –

相关问题