C#メモ
protected void Button1_Click(object sender, EventArgs e) { // Validatorチェック // 引数(エラーメッセージを格納するラベル, 対象ページ, 検証したいWebControl(数はいくつでも) ) // 入力エラーが存在する場合、処理を抜ける if (!IsFormatCheck(Label1, Page, TextBox1, TextBox2)) { return; } } // Validatorチェック // 引数(Label型, ページ型, 可変長のControl型) protected bool IsFormatCheck(Label LabelMessage, Page page, params Control[] CheckControls) { // 文字結合Appendを使用するための、StringBuilder型 ErrorMessage System.Text.StringBuilder ErrorMessage = new System.Text.StringBuilder(); // ページに配置されているValidatorControlの数だけ検証 foreach (BaseValidator CheckValidator in page.Validators) { // Controlをチェックし、エラーメッセージを保存 foreach (Control SelectedControl in CheckControls) { ErrorCheck(ErrorMessage, CheckValidator, SelectedControl); } } // ラベルに、溜め込んだエラーメッセージ群を格納 LabelMessage.Text = ErrorMessage.ToString(); // 結果、エラーが存在しない場合、エラー格納ラベルを非表示にし、trueを返す // そうでない場合、エラー格納ラベルを表示し、falseを返す if ("".Equals(LabelMessage.Text)) { LabelMessage.Visible = false; // trueを返す(エラーなし) return true; } else { LabelMessage.Visible = true; // falseを返す(エラーあり) return false; } } // 渡されたValidatorとControlを元に検証 protected void ErrorCheck(System.Text.StringBuilder ErrorMessage, BaseValidator Validator, Control Control) { // ControlのIDとValidate対象が一致しており、かつ検証結果がエラーの場合 if (Control.ID.Equals(Validator.ControlToValidate) && !Validator.IsValid) { // エラーメッセージがすでに格納されている場合 if (!"".Equals(ErrorMessage.ToString())) { // 改行を挿入 ErrorMessage.Append("<br>"); } // エラーメッセージを追加 ErrorMessage.Append(Validator.ErrorMessage); } }