2010-12-30 17 views
1

プログラムでは、複数のビューを持つマルチビューが1つあります(ビューはメニューオプションです)。妥当性検査の問題

問題は私がメニューオプション(特定のビュー)をクリックした瞬間から既に表示されていることです。

入力が消えた後、次の入力のために空のままにすると、エラーメッセージが戻ってきます。

つまり、正常に動作しますが、エラーメッセージが表示されるべきではないメニューをクリックすると(ページが最初に読み込まれる/表示される)。

EDIT:関数内の(IsPostBack)が問題を解決したようです。 >

答えて

1

私はビューごとに固有のValidationGroupであなたのすべてのコントロールをラップ推薦:

IsPostBackプロパティは、一度にそれほど混乱することができます。問題は、すべての検証がポストバックで起動されるため、無効化された検証コントロール(非表示または非表示)は、現在のビュー内にある限り、メッセージを表示することです。ビュー間をナビゲートするボタンにも同じValidationGroupを追加する必要があります。また、次のビューに移動する前にPage.IsValid()がtrueであるかどうかをチェックしていないと確信しています。そうすると、他のビューのバリデータが無効になるため、現在のビューから移動することができなくなります。

任意のボタンのCausesValidationをFalseに設定して、検証が実行されないようにすることもできます。

関連する問題