2011-08-16 19 views
1

ASP.netページで動作していないrequiredfieldvalidatorコントロールに問題があります。私はそのフィールドの属性を適切に完成させましたが、テストすると、問題のフィールドが空白であってもポストバックが可能です。サーバー側の検証

代わりにサーバー側の検証をしたいと思います。それをする最善の方法は何ですか?ポストバックが発生した場合は?また、フィールドが空白であることが判明した場合、他のフィールドに置かれた他のすべての値がそのまま表示され、「このフィールドは空白にできません」というメッセージが表示されます。

EDIT:

これはコードです:

<asp:TextBox ID="fName" TabIndex="1" runat="server" Width="221px" CausesValidation="True"></asp:TextBox> 
<asp:RequiredFieldValidator ID="FNameRequiredFieldValidator" runat="server"  ControlToValidate="fName" InitialValue="" ErrorMessage="Filter Name cannot be blank."  ToolTip="Filter Name cannot be blank.">*</asp:RequiredFieldValidator> 
+0

このリンクは、日付が付けられていますが、バリデーションを使用するのに非常に便利なイントロです。http://www.codeproject.com/KB/validation/aspnetvalidation.aspx – mikemanne

答えて

1

あなたは同様にあなたのボタン/リンク制御のためのマークアップを提供する必要があります。

'CausesValidation'属性は、TextBoxコントロールで使用することは想定されていません。

クリックするボタンは、その属性を「True」に設定する必要があります。

マークアップを入力してから、代替サーバー側の検証についてアドバイスできます。

0

クライアント側の検証を有効にするには、RequiredFieldValidatorEnableClientScript="true"を設定します。

また、サーバー側でも常に検証する必要があります。しかしRequiredFieldValidatorでは、特別な処理を行うサーバー側はできません。 Page.IsValid()かどうかだけチェックしてください。フィールドが指定されていない場合はfalseが返されます。

カスタム検証を実行する場合は、CustomValidatorを使用します。

関連する問題