0

私のasp.netページには複数text-boxesあり、DropDownListsそのすべてに必須フィールドのバリデーターがあります。

私のサイトには、ボタンをクリックするだけで移動できる複数のページもあります。(すべてのページにすべてのボタンがあります) ページが読み込まれ、フォームに情報を入力せずに別のページに移動したい場合、ボタンをクリックして別のページに移動すると、検証がポップアップして変更できませんページ、それは毎回私を停止しますか?

これを止める方法についてのアイデアはありますか?

4

5 に答える 5

2

あなたがすでに解決策を見つけていることは知っていますが、私は人々が見ることができる別の方法を投入したかっただけです. バリデーターを使用する場合、ValidationGroups を使用するのが一般的です。バリデーターが ValidationGroup に属している場合、バリデーターは検証グループ内の別のコントロールによってのみトリガーされます。例えば:

<asp:TextBox ID="NameBox" runat="server"/>
<asp:RequiredFieldValidator ID="NameVal" ControlToValidate="NameBox"
    ValidationGroup="ValSubmit" runat="server"/>
//...More input fields and validators...

<asp:Button ID="SubmitButton" ValidationGroup="ValSubmit" runat="server"/>

このメソッドを使用すると、「ValSubmit」ValidationGroup を持つバリデーターは、他のコントロールではなく、SubmitButton によってのみトリガーされます。これで、ポストバックを引き起こす他のすべてのものに CausesValidation="false" を設定する必要がなくなりました。

于 2013-08-16T17:48:37.903 に答える
1

他のみんなが言ったように、CausesValidationプロパティをfalseに設定します。

<asp:Button ID="MyButton" Text="Go Back" CausesValidation="False" />

これは、 Microsoftヘルプページから直接引用したものです。

デフォルトでは、ボタンコントロールがクリックされたときにページ検証が実行されます。ページ検証は、ページ上の検証コントロールに関連付けられている入力コントロールがすべて、検証コントロールによって指定された検証ルールに合格するかどうかを決定します。

CausesValidationプロパティを使用して、Buttonコントロールがクリックされたときにクライアントとサーバーの両方で検証を実行するかどうかを指定または決定できます。検証が実行されないようにするには、CausesValidationプロパティをfalseに設定します。

注:PostBackUrlプロパティを使用して別のページにポストバックする場合は、CausesValidationプロパティをfalseに設定する必要があります。別のページに投稿するときは、検証を明示的に確認する必要があります。例については、PostBackUrlプロパティの「備考」セクションを参照してください。ボタンがクリックされたときに検証が実行されないように、リセットまたはクリアボタンの場合、このプロパティは通常falseに設定されます。

CausesValidationプロパティの値がtrueに設定されている場合、ValidationGroupプロパティを使用して、Buttonコントロールが検証を行う検証グループの名前を指定することもできます。

于 2012-05-18T12:12:07.103 に答える
0
<asp:Button CausesValidation="True|False" />

Buttonコントロールがクリックされたときに検証が実行されるかどうかを示す値を取得または設定します。

Button.CausesValidationプロパティについてもっと読む

于 2012-05-18T12:08:25.357 に答える
0

CausesValidation = "false"検証をトリガーしたくないボタンにプロパティを設定します

于 2012-05-18T12:06:39.237 に答える
0

CausesValidation="false"ボタンに;)

于 2012-05-18T12:06:55.353 に答える