2012-10-03 70 views
1

我想在我的javascript函數中獲得代碼隱藏值。我的場景是,可以說我有兩個用戶控件A和B. 我從UserControl A設置全局值。當我來到UserControl B的頁面加載時,我正在訪問該值並將其放入隱藏字段中。 我在UserControl B上有一個按鈕,它在客戶端單擊時調用一個javascript函數。 在這個函數上,我試圖捕獲hiddenfields的當前值。但是我總是從隱藏字段值中獲得0。我做錯了什麼?有人能幫我嗎?在javascript函數中獲取代碼隱藏值

下面是代碼:

<%@ 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」。爲什麼?

+0

嘗試VAR currentVal = $( 「#」 DetailsFormPanel_DetailsForm1_HFDetails「)VAL(); – ssilas777

+0

你檢查隱藏字段的值在HTML源在瀏覽器中?:這是不是設置值的代碼隱藏,或者它是不是正確讀取它的JavaScript? –

+0

感謝幫助的人們。對此遲到抱歉。不知道如何,但相同的代碼正在另一個開發環境中工作。現在一切都很好,我會在有空閒時間的情況下進行調查,再次感謝您的投入。 – nilarya

回答

2

嘗試:

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