02. december 2005 - 13:04Der 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.
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
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!)?
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?
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)
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.