18.02.2010
22:48

ASPxEditors und Page.Validate()

Die ASPxEditors von DevExpress kommen mit einem eigenen Validierungsmechanismus daher, der sich nicht in das ASP.NET – Modell einfügt. Bei bestehenden Projekten kann das sehr schnell zu einem Fallstrick werden. In der Regel bin ich daran gewöhnt mit Page.Validate zu arbeiten, damit auf der Serverseite die Eingaben validiert werden. Die ASPxEditors werden mit dieser Methode jedoch nicht überprüft, was bei Wartungsarbeiten an bestehenden Projekten schnell einen Mehraufwand zur Folge haben kann.

Die erste Variante wäre also auf das ASP.NET – Modell zurückzugreifen und die Standardvalidatoren zu nutzen. Als Beispiel nehme ich die Textbox, obwohl die ASPxComboBox bzw. das ASPxDateEdit - Control besser dafür geeignet wären.

Abbildung 1
Abbildung 1: ASPxEditor mit RequiredFieldValidator

Mit dieser Variante bettet sich die Validierung in das Standardkonzept ein. Ein Problem dabei ist der Aufwand die Elemente zu stylen. Die ASPxEditors erzeugen eine Tabelle und dadurch ist das Verhalten in der Darstellung anders. Während die Fehlermeldung bei der Standard-Textbox neben dem Eingabefeld angezeigt wird, ist es bei der ASPxTextBox unterhalb auf einer neuen Zeile.

Abbildung 2
Abbildung 2: Darstellung ohne float
Abbildung 3
Abbildung 3: ASPxTextBox im Native-Mode
Abbildung 4
Abbildung 4: Zusammengesetztes Control aus Label, Textbox und Validierung
Abbildung 4
Abbildung 4: Prüfung beider Validierungsmechanismen im Code-Behind
C#
namespace Custom.Web.UI.WebControls
{
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Web.UI;

  public class TestTextBox : DevExpress.Web.ASPxEditors.ASPxTextBox, IValidator
  {
    #region IValidator Member
    public string ErrorMessage
    {
      get
      {
        return this.ErrorText;
      }

      set
      {
        this.ErrorText = value;
      }
    }
    #endregion

    protected override void OnInit(EventArgs e)
    {
      if (this.Page != null)
      {
        this.Page.Validators.Add(this);
      }

      base.OnInit(e);
    }

    protected override void OnUnload(EventArgs e)
    {
      if (this.Page != null)
      {
        this.Page.Validators.Remove(this);
      }

      base.OnUnload(e);
    }
  }
}
Abbildung 5
Abbildung 5: ASPxTextBox mit Schnittstelle IValidate
Abbildung 6
Abbildung 6: Prüfung für Pflichteingabe
Abbildung 7
Abbildung 7: Prüfung gültige Email
  •  
  • 0 Kommentar(e)
  •  

Mein Kommentar

Über jeden weiteren Kommentar in diesem Post benachrichtigen.

Zurück

Translate this page

Kategorien

  • [-].NET Development (215)
  • [-]Datenbank (26)
  • HTML (1)
  • Konfiguration (12)
  • Mind Map (10)
  • Off-topic (9)
  • Open Source (3)
  • Qualität (7)
  • Sharepoint (6)
  • Sicherheit (2)

Archiv

Social Bookmarking

Bookmark bei: Mr. Wong Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Favoriten Bookmark bei: Seekxl Bookmark bei: Favit Bookmark bei: Social Bookmarking Tool Bookmark bei: Power Oldie Bookmark bei: Bookmarks.cc Bookmark bei: Newskick Bookmark bei: Newsider Bookmark bei: Linksilo Bookmark bei: Readster Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Digg Bookmark bei: Del.icio.us Bookmark bei: Reddit Bookmark bei: Simpy Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Netscape Bookmark bei: Furl Bookmark bei: Yahoo Bookmark bei: Spurl Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Blinkbits Bookmark bei: Ma.Gnolia Bookmark bei: Smarking Bookmark bei: Netvouz Information