Avatar billede stigc Nybegynder
02. december 2005 - 13:04 Der er 9 kommentarer og
1 løsning

Serverside-validering

Jeg har en kontrol som bruges på et utal af sider. Det er en datovælger (System.Web.UI.UserControl) som allerede indeholder en javascriptvalidering på OnBlur eventet.

Denne validering er ikke god nok, og jeg ønsker derfor at supplere med en serversidevalidering. Kan jeg implementere sådan en uden at skulle ændre på alle de sider som bruger kontrollen? Altås jeg ville ikke ændre på en enste linie kode ude for kontrollen, men jeg vil gerne opnå datovalidering ved hvert server round trip.
Avatar billede snepnet Nybegynder
02. december 2005 - 16:58 #1
hvis du har lavet datovælgeren i en usercontrol kan du lægge valideringen ind i den også.
mvh
(du kan eventuelt vise koden til din usercontrol)
Avatar billede stigc Nybegynder
19. december 2005 - 21:07 #2
Ja det lyder godt. Men kan jeg få valideringen til at køre uden at skulle ændre i de sider der bruger den? Kode skulle ikke være nødvendigt.
Avatar billede snepnet Nybegynder
19. december 2005 - 21:13 #3
det kan jeg ikke svare på ... det kommer an på om du på de sider har behov for at gøre noget særligt hvis indtastningen ikke kan valideres.
men ... du behøver ikke ændre på dine sider fordi du udvider kontrollen med noget validering af indtastningen.
mvh
Avatar billede snepnet Nybegynder
19. december 2005 - 21:15 #4
lød lidt sort .... jeg prøver lige med en anden formulering også :o) :

du behøver ikke nødvendigvis at gøre noget på dine sider for at sikre at valideringen kører i din kontrol.

mvh
Avatar billede stigc Nybegynder
19. december 2005 - 21:22 #5
Det lyder godt.

Men jeg er ikke helt sikker på hvordan jeg klarer den. Fx. indgår kontrollen på en side hvor brugeren trykker på en knap "Gem". Her må der jo ikke gemmes, men siden skal vise en fejlteksten for kontrollens validator. Hvordan undgår man at knappens event gennemføres (uden at ændre på siden!)?
Avatar billede snepnet Nybegynder
19. december 2005 - 21:44 #6
det kan du ikke... men du kan sørge for at din kontrol indgår i sidens validators, og på din side så lave en

this.Validate();
if(this.IsValid)
{
  // ...
}
else
{
  // ...
}

mvh
Avatar billede stigc Nybegynder
19. december 2005 - 21:51 #7
Se, det var jo det jeg gerne ville slippe for :) Man kunne forstille sig at man ikke havde adgang til filerne, men kun kunne lægge en ny kompileret version af kontrollen i produktion. Så lektien må være, at man altid skal bruge den struktur som du har angivet, eller hvad?
Avatar billede snepnet Nybegynder
19. december 2005 - 21:59 #8
hvis du vil ændre adfærd på dine sider undgår du ikke at pille ved dem, men det betyder ikke at din usercontrol som selvstændig komponent ikke kan tilbyde validering, fejlmeddelelser osv.

har du en usercontrol der i forvejen tilbyder dine sider at abbonnere på et event som f.eks.

DateSelected

og har du sider der i forvejen abbonnerer på det event, så kan du i din usercontrol lægge en validering ind der sørger for at det event kun hæves, hvis den indtastede dato er gyldig.

på den måde har du tilført validering i din usercontrol - uden at have skullet pille på dine sider... jeg ved bare ikke noget om hvorvidt scenariet er relevant for det du har eller ej :o)

men ellers ja ... den foreslåede model er en ganske standard måde at implementere den slags på (og også den måde de eksisterende validators fungerer).

men det er normalt inden for mulighedernes grænser at lave noget generel "fejlindtastningshåndtering", som du så kan proppe i en baseklasse som du så baserer dine sider på.
i det tilfælde skal du så heller ikke pille ved dine sider.

i mange situation kan det dog være meget rart at have hands-on med meddelelser til brugeren, og så er vi tilbage ved at du skal pille ved dine sider ;o)

mvh
Avatar billede stigc Nybegynder
23. maj 2006 - 20:52 #9
Læg et svar snepnet.
Avatar billede snepnet Nybegynder
23. maj 2006 - 21:03 #10
Kommer her :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester