在javascript函数中获取代码隐藏值

时间:2012-10-03 08:25:41

标签: javascript asp.net vb.net-2010

我想在我的javascript函数中获取codebehind值。我的情况是,让我说我有两个用户控件A和B. 我正在从UserControl A设置一个全局值。当我来到UserControl B的页面加载时,我正在访问该值并将其放入隐藏字段。 我在UserControl B上有一个按钮,它在客户端点击时调用javascript函数。 在该函数上,我试图捕获隐藏字段的当前值。但我总是从隐藏的字段值得到0。我做错了什么?有人能帮助我吗?

以下是代码:

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="DetailsForm.ascx.vb" Inherits="TD_Web_App.DetailsForm" %>
<script type="text/javascript">
function GetNextRecord() {
    debugger;
    var currentVal = $get("DetailsFormPanel_DetailsForm1_HFDetails").value; 
//clientID of my hidden field
}
</script>
<asp:UpdatePanel ID="DetailInfoUpdatePanel" runat="server" UpdateMode="Conditional" > 

  <ContentTemplate>
<table id="TDPropsGrid" runat="server" width="250px" ></table>
    <asp:Button ID="Cmd_Next" runat="server" Text="Next" Width="100px" SkinID="ButtonSkin" UseSubmitBehavior="false" OnClientClick="GetNextRecord()"/>
<asp:LinkButton ID="LinkButtonDetails" runat="server" style="display:none;">
LinkButton 
</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>

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

关于代码背后:

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    showData() 'some function
    HFDetails.Value = CurrentRecordCounter  ' global value coming from other usercontrol 
End Sub

'Private Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
'    HFDetails.Value = CurrentRecordCounter
'End Sub

我试过把

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

在更新面板中,没有任何改变。

但是在GetNextRecord()中,currentVal始终为“0”。为什么呢?

1 个答案:

答案 0 :(得分:2)

尝试:

var currentVal = $('#<%=HFDetails.ClientID %>').val();