0

ポストバック イベントの値を決定するコンポーネントがあります。

protected void Button_Click(object s, EventArgs e)
{
   HiddenField.Value = 5;
}

もちろん値にはもっと関係がありますが、HiddenField は runat=server が設定された asp:HiddenField コントロールです。私は私のjavascriptに持っています:

var id = $("#<%= HiddenField.ClientID %>").val();

javascript のコードは、QueryString を介して隠しフィールドの値を別の URL に渡す目的で、ポストバックが発生した後 (別のクライアントのクリック イベント) にのみ実行されるように設定されています (ポストバックで応答リダイレクトを行うことができないため)。とにかく、クライアントは別のページでそれを望んでいます)。

追加してみました:

ScriptManager.RegisterHiddenField(HiddenField, "Value", string.Empty);

コードの !Page.IsPostback セクションに移動しますが、JavaScript の実行時に ID がまだ設定されていません。

4

2 に答える 2

0

メインページにグローバルjs変数を追加してから、非表示フィールドの代わりにその変数を設定できます。

Page.aspx

<script>
   var id='';
</script>

Page.aspx.cs

protected void btn_Click(object sender, EventArgs e)
{
   ScriptManager.RegisterStartupScript(Page, Page.GetType(), "updateJavaScriptId", "id='5';", true);
}
于 2010-08-18T15:34:57.630 に答える
0

ここに同様の問題があります。多分あなたはそれを使ってあなたがしていることを変えることができます。

そのようなクライアント ID にアクセスする必要がありますか? コントロールがリピーターなどにない限り、ほとんど問題なくコントロールの ID を設定できるはずです。それはあなたがしようとしていることを単純化することができます。

この例では、getElementById を使用して隠しフィールドを取得し、HiddenField の ID を渡すだけです。

于 2010-07-29T21:52:38.400 に答える