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.
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.
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);
}
}
}
- 0 Kommentar(e)









Mein Kommentar