
Mellékelt példa megnyitása előtt szükséges egy ValidatorTest nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez nyissa meg a mellékelt mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
Az ellenőrző kontrolok sajátossága, hogy a BaseValidator osztályból származnak, így rendelkeznek az IVaidator interfész tulajdonságaival.
A kontrolokat a Weblapra helyezzük, és megadjuk számukra – a ControlToValidate property-ben - azt a kontrolt, melynek tartalmát ellenőrizni kell bizonyos szabály szerint. Az ErrorMessage property-ben kell megadnunk azt a szöveget, amely megjelenik, mint figyelmeztető üzenet helytelen adatbevitel esetén.
Jellemző tulajdonságuk, hogy amennyiben nem megfelelő az ellenőrzendő kontrol tartalma, a gomb lenyomása nem eredményez PostBack eseményt, míg ellenkező esetben igen.
A létrehozandó kontrolunkban a BaseValidator osztály három virtuális metódusát kel felülírnunk ahhoz, hogy működése megfelelő legyen:

ControlPropertiesValid
Osztály: BaseValidator
protected virtual bool ControlPropertiesValid();
Meghatározza, hogy a ControlToValidate property-ben megadott kontrol valós objektumot takar, vagy sem.
Visszatérési érték
Amennyiben a kontrol valós, akkor értéke TRUE, egyébként FALSE.

EvaluateIsValid
Osztály: BaseValidator
protected abstract bool EvaluateIsValid();
Felülírva ellenőrzi a beírt adat helyességét.
Visszatérési érték
Ha a beírt adat helyes, akkor értéke TRUE, egyébként FALSE.

OnPreRender
Osztály: BaseValidator
protected override void OnPreRender(EventArgs e);
Render előtti műveletek elvégzésére szolgáló metódus.
Paraméterek
EventArgs e
Információs paraméter.
A kontrol készítését tehát ezen metódusok felülírásával kezdjük. A megadott kontrol ellenőrzése a következőképpen történik:
protected override bool ControlPropertiesValid()
{
if (this.FindControl(this.ControlToValidate) is TextBox)
{
return true;
}
else
{
return false;
}
}
Kliens-oldalon valósítjuk meg az ellenőrzést, így a következő metódust TRUE visszatérési értékkel írjuk felül:
protected override bool EvaluateIsValid()
{
return true;
}
Amennyiben engedélyezve van, akkor a lapra helyezzük az ellenőrző szkript kódot. Ezt a Controller metódusban valósítottuk meg:
protected override void OnPreRender(EventArgs e)
{
if (this.EnableClientScript)
{
this.Controller();
}
base.OnPreRender(e);
}
A Controller metódusban a saját kontrolunk EVALUATIONFUNCTION attribútumaként megadjuk a lapra helyezendő JavaScript függvény nevét, jelezve, hogy ebben helyeztük el az ellenőrző algoritmust:
protected void Controller()
{
this.Attributes["evaluationfunction"] = "validateWord";
A script kód szövegét egy StringBuilder objektumban tároljuk:
StringBuilder text = new StringBuilder();
...
Majd a Page osztály RegisterClientScriptBlock statikus metódusával írjuk a Weblapra:
this.Page.RegisterClientScriptBlock("goodword", text.ToString() );
}
A JavaScript kód ellenőrzi, hogy a TextBox kontrol Text property-jébe írt név megegyezik-e a három nevet tartalmazó tömb valamelyik elemével. Ha igen, akkor a függvény visszatérési értéke TRUE, egyébként FALSE. FALSE érték esetén jelenik meg a kontrol szövegeként az ErrorMessage property-ben megadott karakterlánc.
Felhasználása előtt a kontrolt fel kell tenni a ToolBox-ra a szokásos módon: kattintsunk a ToolBox valamely lapján az egér jobb gombjával, majd a megjelenő menüből válasszuk ki a Customize ToolBox pontot, a megjelenő ablakban a .NET Frameworks Components fület. A Browse gombbal keressük elő az imént létrehozott .DLL-t.
A WebForm1.aspx lapra két TextBox kontrolt helyeztünk fel, egyikben egy jó adattal, másikban egy nem megfelelő névvel. A lapra feltett egyetlen Button kontrolra kattintva az ellenőrzést mindkét kontrol elvégzi, és az egyik megjeleníti a hibaüzenetet.
Ha vetünk egy pillantást a Weblapunk forrására, akkor láthatjuk, hogy a Button kontrolunk HTML-kódja gazdagodott egy attribútummal, melynek eredményeképpen az ellenőrzőkontrolok elvégzik a munkájukat:
<INPUT ... onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " ...>
Ha script függvényként létezik a Page_ClientValidate elem, akkor végrehajtja. A függvény kódja elérhető a Weblapunkról, hála a kontrol ősosztályának:
function Page_ClientValidate()
{
var i;
for (i = 0; i < Page_Validators.length; i++)
{
ValidatorValidate(Page_Validators[i]);
}
ValidatorUpdateIsValid();
Page_BlockSubmit = !Page_IsValid;
return Page_IsValid;
}
Minden ellenőrző kontrollal paraméterében meghívja a ValidatorValidate függvényt, mely elvégzi az ellenőrzést a létrehozott script függvényünkkel.