ASP.NET Tutorial, Part 12 - Validering - eksempel

Tags:    asp.net
Skrevet af Bruger #7741 @ 09.08.2005
I de forrige lektioner har vi kigget på de mange forskellige typer af valideringskontroller. I denne lektion benytter vi nogle af kontrollerne til at udvide formularen fra lektion 9 til beregning af ydelse på et annuitetslån.

Formularen så således ud:


Figur 1 Formular til beregning af ydelse.
For at være sikker på, at funktionen PMT(…) (se lektion 9) ikke kaldes med forkerte argumenter, kræver tre af kontrollerne på formularen validering:

[table][tr][td]Kontrol[/td] [td]Beskrivelse[/td][/tr][tr][td]Rente[/td] [td]1. Der skal indtastes en værdi.
2. Renten skal være et decimaltal mellem 0 og 25.[/td][/tr][tr][td]Antal terminer[/td] [td]1. Der skal indtastes en værdi.
2. Det skal være et heltal mellem 1 og 250.[/td][/tr][tr][td]Hovedstol[/td] [td]1. Der skal indtastes en værdi.
2. Det skal være et decimaltal mellem 100 og 10.000.000,00[/td][/tr][/table]

Valideringen kan i dette tilfælde klares med tre RequiredFieldValidator-kontroller og tre RangeValidator-kontroller. For at gøre det så brugervenligt som muligt bruges der ligeledes en ValidationSummary-kontrol for at samle eventuelle fejlmeddelelser.

Her følger selve formularen med de syv valideringskontroller:
Fold kodeboks ind/udKode 


Bemærk, at valideringskontrollerne er placeret lige efter de kontroller de skal validere, og at Text-egenskaben er "*". Eventuelle fejl vil således blot blive markeret med en stjerne, og selve fejlmeddelelsen opsamlet af ValidationSummary-kontrollen nederst på siden. Yderligere er Display-egenskaben tildelt værdien "Dynamic" hvilket betyder, at stjernen vil stå samme sted hvad enten det er RequiredFieldValidator- eller RangeValidator-kontrollen der ikke validerer korrekt (prøv at rette værdien til "Static", og se hvad der sker).

Som det fremgår, er alle valideringskontroller sat til at validere på serveren (EnableClientScript-egenskaben er False). Det kunne med fordel ændres til klientvalidering (kræver dog at browseren kan håndtere det), men for eksemplets skyld er servervalidering valgt i dette tilfælde.

Selve koden bag beregningen er ændret en lille smule - nemlig ved at kontrollere om alle kontroller er valide inden selve beregningen sker, ved hjælp af IsValid-egenskaben. Hvis det ikke er tilfældet, slettes den tekst som eventuelt måtte stå i Resultat-etiketten. Hvis det ikke blev gjort, kunne man risikere at der både var et resultat fra en tidligere beregning i Resultat-etiketten, og samtidigt en fejlmeddelelse fordi der er indtastet forkerte data i forbindelse med en ny beregning.

Her er den tilrettede kode:
Fold kodeboks ind/udKode 

For selv at prøve eksemplet skal du kombinere script-delen i det sprog du ønsker, øverst i dokumentet og opmærkningsdelen i samme dokument.

Slutteligt er her et par billeder af den "nye" formular:


Figur 2 Fejl i indtastningerne.


Figur 3 Indtastningerne er korrekte, og beregningen kan udføres.

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (0)

Du skal være logget ind for at skrive en kommentar.
t