Thomas Bandt

Über mich | Kontakt | Archiv

RequiredFieldValidator für eine CheckboxList

Das Problem verfolgt mich schon seit meinen .NET-Anfängen, jetzt ist mir aber eine viel elegantere Lösung über den Weg gelaufen. Der Artikel "Building a CheckBoxList Validator Control" bietet ein fix und fertiges Control, was man direkt zum Validieren einer CheckBoxList einsetzen kann, auch ohne große Umstände mit .NET 2.0 und ohne Verlust irgendwelcher Features eines "normalen" RequiredFieldValidators.

Der Vollsständigkeit halber und fürs Archiv die .NET 2.0-Version:

public class RadioButtonListRequiredFieldValidator : BaseValidator
{

   protected override bool ControlPropertiesValid()
   {
      return true;
   }

   protected override bool EvaluateIsValid()
   {
      return this.EvaluateIsChecked();
   }

   protected bool EvaluateIsChecked()
   {
      CheckBoxList _cbl = ((CheckBoxList)this.FindControl(this.ControlToValidate));
      foreach (ListItem li in _cbl.Items)
      {
         if (li.Selected == true)
         {
            return true;
         }
      }
      return false;
   }

   protected override void OnPreRender(EventArgs e)
   {
      if (this.EnableClientScript) { this.ClientScript(); }
      base.OnPreRender(e);
   }

   protected void ClientScript()
   {
      this.Attributes["evaluationfunction"] = "cb_vefify";
      StringBuilder sb_Script = new StringBuilder();
      sb_Script.Append("");
      this.Page.ClientScript.RegisterClientScriptBlock(typeof(String), "RBLScript", sb_Script.ToString());
   }
}

Kommentare

  1. Albert Weinert schrieb am Mittwoch, 19. Oktober 2005 13:09:00 Uhr:

    Und dies läuft dann auch Deiner Nummer Eins Software im Oktober?

    Stichwort:
    document.all

    Bei der Version 1.5 wird es wohl laufen ...
  2. Thomas schrieb am Mittwoch, 19. Oktober 2005 13:20:00 Uhr:

    Da validiert er halt am Server - ist mir bis hierher nicht aufgefallen. Aber du hast Recht, könnte man noch schnell austauschen. Mache ich gleich


« Zurück  |  Weiter »