2011-01-17 4 views
3

私はコンテナ(RadDockZone - Telerik)を持っていて、その内部に必須の "Asp:RequiredFieldValidator"というテキストボックスフィールドがあります。私がAJAX操作を操作するたびに、コンテナ全体がRequiredFieldValidatorを含む「リロード」されます。これにより、ページが完全にリロードされるまで、ValidationSummaryに同じエラーメッセージが2回表示されます(RadAjaxManagerを使用してAJAX操作を解決しています)。ASP.NET/C#で特定のコントロールをロードしない方法はありますか?

したがって、C#を使用して特定のコントロール(この場合はRequiredFieldValidator)を「リロードしない」ことはできますか?

よろしくお願いいたします。

+0

私は100%正しく理解していないのか分かりませんが、AJAX操作を実行しているコントロールでCausesValidationをfalseに設定することはできませんか? あなたはどのAJAX操作を実行していますか? – thomasvdb

答えて

0

ajaxマネージャによって更新されたコントロールのリストにテキストボックス(またはラッピングコンテナ)が含まれていない場合は、テキストボックスと必要なバリデータをajaxリクエストで更新してはならず、エラーメッセージを視覚化しないでください。

+0

ええ、私はこれを前に見たことがあります。それは私の会社でここで使用されている "パターン"の問題ではなかった場合、練習の解決策になる可能性があります。とにかく、私は実際にこのコントロールをコンテナにラップし、AJAXマネージャによって更新される必要があります。ありがとうございました! – Kira

0

検証グループを使用する必要があります。これにより、すべての検証コントロールをグループにまとめることができます。次に、この同じ検証グループを送信ボタンに入れ、その特定のボタンがクリックされたときにそれらの検証コントロールはのみ検証されます。

プロパティは、ValidationGroupプロパティを使用して、検証コントロールとボタンに割り当てられます。

また、CausesValidationをfalseに設定することも、Thomasvdbの提案には適しています。

2

ページロードif(page.Isvalid)に次のものを置くと、必要なフィールドバリデーターがそのフォームを送信した後に1回発射されます。メッセージは2回表示されません。