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は検証できません。」
何が問題なのでしょうか?ネットで検索しましたが、あまり役に立ちませんでした。
ユーザー入力を受け入れる入力コントロールに対してのみ CustomValidatorを使用できます :
クライアント側の検証は、サーバーに送信される前にユーザー入力をチェックすることにより、検証プロセスを強化します。
あなたがしたいことはここで ボタンのコントロールと検証を見てください。
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