![]() |
Web Development »
ASP.NET »
General
Intermediate
Enhancing ASP.NET ValidatorsBy xicolokoAn article on extending the ASP.NET validators |
C#.NET 1.0, Win2K, ASP.NET, Visual Studio, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

ASP.NET has impressive improvements in Web development. Data validation, deployment, user controls and lots more. And best of all: you can extend the basic controls using the class hierarchy. In this article I'll show how to change the validator controls to give better visual feedback to the user. It will change the label color of an invalid field.
To have the desired result I extended the validators to include 5 properties
| LabelControl | Identify the label control of the control to be validated |
| LabelColor | The standard label color |
| ErrorLabelColor | The color of the label when the control input is invalid |
| UseErrorIndicator | Set if an error indicator should be used |
| ErrorIndicator | Sets the error indicator. The error indicator is a prefix string that will be included in the label, ie '*' |
To change the color of the label I wrote my EvaluateIsValid method, calling the base class implementation, changing the label according to the return value:
protected override bool EvaluateIsValid()
{
bool result = base.EvaluateIsValid();
Control control = FindControl(LabelControl);
if (control != null)
{
Label label = control as Label;
if (label != null)
{
string sColorName = result ? LabelColor : ErrorLabelColor;
label.ForeColor = Color.FromName(sColorName);
if (UseErrorIndicator)
{
string sLabelText = label.Text;
if (result)
{
if (sLabelText.StartsWith(ErrorIndicator))
{
sLabelText = sLabelText.Substring(ErrorIndicator.Length);
}
}
else
{
if (!sLabelText.StartsWith(ErrorIndicator))
{
sLabelText = ErrorIndicator + sLabelText;
}
}
label.Text = sLabelText;
}
}
}
return result;
}
I've compiled the class into a library:
csc /out:bin\XWebControls.dll /t:library XWebControls.cs
To use it in a page you have to register the prefix:
<%@ Page Language="C#" %>
<%@ Register TagPrefix="XC" Namespace="XWebControls"
Assembly="XWebControls" %>
...
<XC:RequiredFieldValidator runat="server"
ErrorMessage="The Required Field is required"
ControlToValidate="field1"
LabelControl="labelField1"
EnableClientScript="false"
UseErrorIndicator="true"
Display="none" />
The source file included just implements the RequiredFieldValidator and the CustomValidator, but it's easy to write the others validators, or even you own validator. The source was developed using the .NET Beta 2
| You must Sign In to use this message board. | |||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 5 Jul 2001 Editor: Chris Maunder |
Copyright 2001 by xicoloko Everything else Copyright © CodeProject, 1999-2009 Web21 | Advertise on the Code Project |