1

私はこのシナリオを持っています

AutoPostBack=true の TextBox と、テキストの変更を管理するためのサーバー側コード。

サーバー側の設定確認と管理するコードを含むボタン。btnSend.Attributes.Add("onClick", "return confirm('確認メッセージ')"); ....

すべてが UpdatePanel 内にあります

ユーザーが TextBox に書き込みを行っているときに、テキストボックスのフォーカスを維持したままボタンをクリックすると、確認メッセージが表示され、inputTextAnswer_TextChanged の背後で発生して実行されます。その後、ページは PostBack を処理したため、ユーザーが確認で [OK] をクリックすると、何も実行されません。ボタン コードを実際に実行するには、もう一度クリックする必要があります。

inputTextAnswer_TextChanged コード (最初に実行する必要があります) を実行してからボタン コードを実行する方法はありますか。重要: ユーザーがテキスト ボックス フィールドに入力してからボタンをクリックしたときだけ、常に次々に実行する必要はありません。

4

1 に答える 1

1

OK、誰かが同じ問題を抱えている場合、私の解決策。ボタンに戻るに関連付けられた確認を残す代わりに、javascript を使用して手動でポストバックを行うだけです。次に、テキストボックスの変更イベントが実行され、ユーザーが [OK] をクリックすると、ポストバックとボタン コードの実行が強制されます。

サーバー側のこのコード

btnSend.Attributes.Add("onClick", "confirmSend();");

これはaspxで

<script>
function confirmSend() {
    var agree = confirm('confirm message');
    if (agree) {
         __doPostBack('btnSend', '');
   }
  }
</script>
于 2012-06-27T11:02:17.363 に答える