我看过很多相关的问题,但似乎无法弄清楚该怎么做。
我有一个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中隐藏值的值不会持续回发。
我需要了解什么或我需要做什么才能使更新后的隐藏字段值继续存在?
答案 0 :(得分:2)
答案很简单。 Javascript区分大小写,因此当您使用隐藏元素的Value属性时,它会创建新属性值,而不是将其设置为 value 属性。
因此,您只需要更新代码即可:
function jsFunc() {
document.getElementById("hField").value = "someString";
__doPostBack( "btn1", "" );
}
答案 1 :(得分:1)
你不应该从你的javascript函数中调用__doPostBack()
。相反,如果你想取消/阻止PostBack,javascript函数应return false
。