0

フォーム データを検証する Web サービスがあります。このサービスは ScriptService であり、クライアントから呼び出しています。検証が失敗した場合、モーダル ポップアップを表示する必要があります。ユーザーがモーダル ポップアップで [OK] をクリックすると、ポストバックしてデータを保存したいと考えています。「キャンセル」により、モーダルポップアップを閉じて、ユーザーがデータを修正し、再送信できるようにする必要があります。現在、検証の結果に関係なく、モーダル ポップアップが毎回表示されます。

hide() を呼び出して false を返そうとしましたが、どちらも機能しませんでした。

modalpopupextender の TargetControlID プロパティを非表示のボタンに割り当て、検証が失敗した場合はモーダル ポップアップで show() を呼び出すことで、別の観点からこの問題にアプローチしようとしましたが、ポストバックはキャンセルされませんでした。modalpopup が約 1 秒間表示され、ページがポストバックされます。

4

1 に答える 1

4

だからあなたは次のようなことをしたい:

function ValidateInput() {
   MyScriptService.ValidateInput({however you are passing form data}, OnValidateComplete);
}

function OnValidateComplete(response) {
   if ({response is bad}) {
      $find('<%= ModalPopupExtender.ClientID %>').show();
   }
}

その後、TargetControlID、OnOkScript などをすべて同じに保つことができます。おそらく、いくつかのコードを使用して、実際に何をしているかを確認できます。

于 2009-04-23T21:56:52.043 に答える