2011-08-16 17 views
0

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

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

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

あなたはバリデータと検証するテキストボックスに関連するコードのHTML部分を投稿することができます。バットから、バリデータのControlToValidateプロパティが不足しているように聞こえます。また、ページクラスのIsValidプロパティを使用して渡されたページ検証をテストすることもできます。

これは完全に機能します。

<asp:TextBox ID="TextBox1" runat="server" />; 

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="*" /> 

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
0

まず、間違ったことを明確にしているので、requiredfieldvalidatorのコードを投稿してください。

しかし、クライアント側とサーバー側の両方で確認するとよいので、他の質問にお答えします。

私は通常、ポストバックのイベントハンドラで妥当性をチェックします。ラベルの値を設定して、失敗を示すことができます。これはポストバックなので、すべてのフィールドの値は入力されたままでなければなりません。

1

CauseValidationプロパティをバリデータのデフォルト値からTextBoxInvalidValueに削除してみてください。

Page_Loadの後にサーバー側の検証が実行され、イベントが制御されます。必要なバリデーターを使用している場合、余分なコードを書く必要はありません。

Button_Clickイベントでは、ちょうどthis.Page.IsValidフラグをチェックします。

0

テキストボックスで使用する理由は、そこにデフォルトのテキスト(「値を入力する」など)がある場合のみです。

関連する問題