1

javascript関数でコードビハインド値を取得したい。私のシナリオは、2つのユーザーコントロールAとBがあるとします。ユーザーコントロールAからグローバル値を設定しています。ユーザーコントロール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」です。なぜ?

4

1 に答える 1

2

試す:

var currentVal = $('#<%=HFDetails.ClientID %>').val();
于 2012-10-03T08:56:29.993 に答える