web-dev-qa-db-ja.com

ASP.NETカスタムバリデーターのエラーメッセージ:プロパティによって参照されているコントロールを検証できません

ASP.NETを使用していて、ボタンとCustomValidatorがあり、ボタンを検証する必要があります。

<asp:Button ID="saveButton" runat="server" OnClick="SaveButton_Click" Text="Speichern"
    CausesValidation="true"/>
<asp:CustomValidator runat="server" ID="saveCValidator" Display="Static"
    OnServerValidate="EditPriceCValidator_ServerValidate"   
    ControlToValidate="saveButton" ErrorMessage="">

ページをロードすると、次のエラーメッセージが表示されます。

「saveCValidator」のControlToValidateプロパティによって参照される「コントロール」saveButtonは検証できません。」

何が問題なのでしょうか?ネットで検索しましたが、あまり役に立ちませんでした。

16

ユーザー入力を受け入れる入力コントロールに対してのみ CustomValidatorを使用できます

クライアント側の検証は、サーバーに送信される前にユーザー入力をチェックすることにより、検証プロセスを強化します。

あなたがしたいことはここで ボタンのコントロールと検証を見てください。

15
CAbbott

AFAIK、ControlToValidateプロパティは入力コントロールを指すか、CustomValidatorコントロールを空白のままにする必要があります。

[〜#〜] msdn [〜#〜] からの参照:

ControlToValidateプロパティを使用して、検証する入力コントロールを指定します。このプロパティは、空白のままにできるCustomValidatorコントロールを除くすべての検証コントロールの入力コントロールのIDに設定する必要があります。有効な入力コントロールを指定しない場合、ページがレンダリングされるときに例外がスローされます。 IDは、検証コントロールと同じコンテナー内のコントロールを参照する必要があります。同じページまたはユーザーコントロールにあるか、テンプレート化されたコントロールの同じテンプレートにある必要があります。

検証できる標準のコントロールは次のとおりです。

  • System.Web.UI.WebControls.DropDownList
  • System.Web.UI.WebControls.FileUpload
  • System.Web.UI.WebControls.ListBox
  • System.Web.UI.WebControls.RadioButtonList
  • System.Web.UI.WebControls.TextBox
  • System.Web.UI.HtmlControls.HtmlInputFile
  • System.Web.UI.HtmlControls.HtmlInputPassword
  • System.Web.UI.HtmlControls.HtmlInputText
  • System.Web.UI.HtmlControls.HtmlSelect
  • System.Web.UI.HtmlControls.HtmlTextArea
28
Alex