用于触发客户端代码的ASP.NET按钮控件,它依次触发服务器端代码

时间:2013-12-18 22:25:15

标签: asp.net postback

我看过很多相关的问题,但似乎无法弄清楚该怎么做。

我有一个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 个答案:

答案 0 :(得分:2)

答案很简单。 Javascript区分大小写,因此当您使用隐藏元素的Value属性时,它会创建新属性,而不是将其设置为 value 属性。

因此,您只需要更新代码即可:

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

答案 1 :(得分:1)

你不应该从你的javascript函数中调用__doPostBack()。相反,如果你想取消/阻止PostBack,javascript函数应return false