1

コード ビハインドから Page.Validate() を使用すると、バリデータが起動しない (予想されるエラー メッセージが表示されない) という問題が発生します。バリデーターは Ajax updatepanel 内に配置されます。

バリデーターのダウンロード可能な Ajax バージョンがあるようです。これらが必要なのか、VS 2008 SP1 に既に含まれているのかはわかりません。フォームがボタンを介して投稿されると、バリデーターは機能しますが、オンデマンドで Page.Validate() を実行すると機能しません。

4

6 に答える 6

1

たぶん私たちは上からそれを取ることができます。あなたはこれらに答えることができますか?

  • .NET 2.0 SP1以降を使用していますか?
  • バリデーターコントロールはUpdatePanelの内部ですか、それとも外部ですか?
  • javascriptを無効にしてサイトを使用していますか(ほとんどありません)?

エラーメッセージを表示するには、バリデーターが更新されたUpdatePanel内にある必要があることに注意してください。更新されたUpdatePanelにない場合、バリデーターはブラウザーでの外観を変更できません。

于 2008-09-23T23:24:22.510 に答える
1

更新を強制したくありません。特定の状況では、ユーザーがいくつかのフォーム要素の値を変更したときに、いくつかのフォーム要素を検証したいと考えています。ユーザーがラジオ ボタンまたはドロップダウン リストに変更を加えると、自動ポストバックが発生します。ポストバックが発生したときに、送信ボタンを押したかのように検証コントロールが起動するようにします。

ポストバックを引き起こすこれらのコントロールでは、'causevalidation' がオンになっています。もう 1 つのテストは、ポストバックの原因となったコントロールのイベント ハンドラーにあります。Pag​​e.Validate() があります。

問題は、ボタンのポストバックが検証を起動するのに、ポストバックを引き起こした別のコントロールが起動しないのはなぜですか?

于 2008-09-23T23:10:04.370 に答える
1

はい、バリデーターは UpdatePanel 内で動作しますが、ASP.NET 2.0 の少なくとも SP1 を使用する必要があります。SP1 を使用する場合、バリデーターの「ajax バージョン」は不要であり、使用すべきではありません。

このテーマの詳細については、次を参照してください。

StackOverflow: UpdatePanel 内の ASP.NET バリデーター

于 2008-09-23T23:05:03.180 に答える
0

結局、単一のカスタムバリデーターを使用し、コードビハインドで独自の検証を行い、カスタムバリデーターのエラーメッセージを設定しました。このように私はより柔軟性があり、それはうまくいきました。Ajaxを使用すると、クライアント側の検証のように感じられます。

于 2008-09-25T04:43:23.750 に答える
0

updatepanel で Update を呼び出しましたか?

于 2008-09-23T22:21:44.703 に答える
0

それらは少し前に .Net フレームワークの更新に含まれていたので、そうです、VS2008 SP1 に含まれています。CustomValidators のサーバー側メソッドが「悪」の効果なしに 2 回起動するという問題を発見しましたが、それ以外は問題なく動作します。

あなたが抱えている特定の問題に関しては、バリデーターが updatepanel 内にないか、または他のパネルが、必要なコントロールではなく、投稿されたコントロールによって更新される可能性がありますか? または、一部の ValidationGroups がどこかに定義されていて、これらのみが検証されることになりますか? コードを見ずに言うのは非常に難しいです。

しかし、バリデーターが表示されていることを確認するのは簡単です: MyUpdatePanel.Update() は強制的に更新します。

于 2008-09-23T22:23:33.373 に答える