1 / 35

Adatok ellenőrzése

Adatok ellenőrzése. Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán. Form ellenőrzés. Vezérlők tartalmának ellenőrzése Érték ellenőrzés Automatikus hibaüzenet kiírás , adatok újrakérése RequiredFieldValidator – kitöltött e?

Download Presentation

Adatok ellenőrzése

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Adatok ellenőrzése Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán

  2. Form ellenőrzés • Vezérlőktartalmánakellenőrzése • Értékellenőrzés • Automatikushibaüzenetkiírás, adatokújrakérése • RequiredFieldValidator – kitöltött e? • <asp:RequiredFieldValidatorControlToValidate="Name" Display="Dynamic" errormessage="You must enter your name!" runat=server/>

  3. Ellenőrzés • Kétfajtája van, a programozómunkájaugyanaz • Kliensoldali(uplevel client support): DHTML, java szkript • Szerveroldali(downlevel client support): ilyenkorvisszaküldiazoldalthibaüzenet a vezérlőmellett. • a feldolgozásalatt: Page.IsValid – • akkorérvényesazoldal, ha mindenvezérlőaz! • ha még nem volt ellenőrzés, akkor kivétel keletkezik!

  4. Ellenőrzők működése • Helyezzünk fel egy beviteli mezőt! • Helyezzük fel az ellenőrző vezérlőt! • Állítsuk be a ControlToValidatetulajdonságát az ellenőrzőnek a beviteli vezérlőre! • Állítsuk be a ErrorMessagetulajdonságát az ellenőrzőnek a hiba jelzés szövegére! • Text tulajdonságot állítsuk be! Ez mindig megjelenik. pl. : * • Helyezzünk egy ValidationSummaryvezérlőt a formra!

  5. Ellenőrzés szabályai • Egy vezérlőhöz több ellenőrző is lehet. • Minden vezérlőnek van egy kiemelt tulajdonsága • ValidationProperty attribútummal jelölt pl:[ValidationProperty("Text")] • Ellenőrzők ennek értékét figyelik. • A web vezérlőknek van CausesValidation tulajdonsága • ha false nincs adatellenőrzés • ha true (alapértelmezett a submit-olóknál): minden ellenőrző lefut • Szerver és kliens oldalon is lehetséges.

  6. Ellenőrzés szabályai II • Ha az ellenőrző hibát észlelt, akkor • a hiba üzenet megjelenik az ellenőrző pozíciójában, • az oldal hibás állapotba kerül, • ha van, akkor az összegzőbe felkerül a hiba szövege • Ellenőrzés az inicializálás (viewstate, postback) után, de az eseményeink kezelése előtt fut le. • Ellenőrzés hamarabb is kikényszeríthető a Validate metódussal, de ekkor 2x fut le.

  7. Vezérlő Ellenőrzött tulajdonság HtmlInputText Value HtmlTextArea Value HtmlSelect Value HtmlInputFile Value TextBox Text ListBox SelectedItem.Value DropDownList SelectedItem.Value RadioButtonList SelectedItem.Value Melyik vezérlőnél mit ellenőrzünk?

  8. Ellenőrzők • Formája: • <asp:CompareValidator id="comp1" ControlToValidate="txtComp" ControlToCompare = "txtCompTo" Type="String" runat="server"/> • RequiredFieldValidator: a felhasználónakkikelltöltenie a vezérlőt • CompareValidator: egykonstans,vagymsáikvezérlőviszonya (<,=,>, …) • RangeValidator: konstansértékekközéesike? (számbetű, dátum) • RegularExpressionValidator: reguláriskifejezésreillik e? • CustomValidator: sajátkódellenőrzi • ValidationSummary: megjelenítiazoldalonhasználtellenőrzőkeredményeit

  9. Minden ellenőrző őseBaseValidator • ControlToValidate: referencia az ellenőrzött vezérlőre. • Display: static vagy dynamic hogyan jelenjen meg a hibaszöveg • EnableClientScript (true a default) • ErrorMessage: hibaszöveg ami a ValidationSummary-ban jelenik meg ha kell. • Text: ezen vezérlő helyén jelenik meg ha kell. • IsValid • SetFocusOnError: ráállítja a fókuszt a megjelölt vezérlőre. • Validate(): Ez hívódik automatikusan, de hívható közvetlenül is.

  10. Ellenőrzés helye • Kliens oldalon is lehet ellenőrizni, de • Szerver oldalon kötelező

  11. RequiredFieldValidator <asp:TextBoxrunat="server"ID="Name"/> <asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server" ControlToValidate="Name"ErrorMessage="Name is required" Display="dynamic">* </asp:RequiredFieldValidator>

  12. RangeValidator I MinimumValue, MaximumValue, Type

  13. RangeValidator II <asp:TextBoxrunat="server"ID="DayOff"/> <asp:RangeValidatorID="RangeValidator1"runat="server"Display="dynamic" ControlToValidate="DayOff"Type="Date" ErrorMessage="Day Off is not within the valid interval" MinimumValue="2008-08-05"MaximumValue="2008-08-20">* </asp:RangeValidator>

  14. CompareValidator • Két vezérlő tartalmát, vagy egy fix érték és a vezérlő tartalma hasonlítja össze. • ControlToCompare • ValueToCompare • Type tulajdonság

  15. CompareValidator operátor tulajdonság

  16. CompareValidator III <asp:TextBoxrunat="server"ID="Age"/> <asp:CompareValidatorID="CompareValidator1"runat="server"Display="dynamic" ControlToValidate="Age"ValueToCompare="18" ErrorMessage="You must be at least 18 years old" Type="Integer"Operator="GreaterThanEqual">* </asp:CompareValidator>

  17. CompareValidator IV <asp:TextBoxrunat="server"TextMode="Password"ID="Password"/> <asp:TextBoxrunat="server"TextMode="Password"ID="Password2"/> <asp:CompareValidatorID="CompareValidator2"runat="server" ControlToValidate="Password2"ControlToCompare="Password" ErrorMessage="The passwords don't match" Type="String"Display="dynamic"> <imgsrc="imgError.gif"alt="The passwords don't match"/> </asp:CompareValidator>

  18. RegularExpressionValidator <asp:TextBoxrunat="server"ID="Email"/> <asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server" ControlToValidate="Email"ValidationExpression=".*@.{2,}\..{2,}" ErrorMessage="E-mail is not in a valid format"Display="dynamic">* </asp:RegularExpressionValidator>

  19. CustomValidator • Ha a beépített ellenőrzők már nem elegendőek. • Lehet kliens vagy szerver oldali vezérlés. • Ellenőrzés hasonló. Metódus 2 paraméterrel: ServerValidate(object source, ServerValidateEventArgsargs) • Value-ban kapjuk a vizsgált értéket • IsValid-ot állítsuk be (true vagy false) • Kliens oldal esetén ClientValidationFunctiontulajddonság

  20. CustomValidator <asp:TextBoxrunat="server"ID="EmpID"/> <asp:CustomValidatorID="CustomValidator1"runat="server"ControlToValidate="EmpID" ClientValidationFunction="EmpIDClientValidate"OnServerValidate="EmpIDServerValidate" ErrorMessage="ID must be a multiple of 5"Display="dynamic">* </asp:CustomValidator>

  21. CustomValidator kliens oldal <script type="text/javascript"> function EmpIDClientValidate(ctl, args) { // the value is a multiple of 5 if the modulus by 5 is 0 args.IsValid=(args.Value%5 == 0); } </script>

  22. CustomValidator szerver oldal • ServerValidate esemény protectedvoidEmpIDServerValidate(object sender, ServerValidateEventArgsargs) { try { args.IsValid= (int.Parse(args.Value) % 5 == 0); } catch { args.IsValid= false; } }

  23. ValidationSummary • Nem végez ellenőrzést. • Megjeleníti az összes vezérlő ErrorMessage tulajdonságát. • Ha ShowMessageBox igaz, akkor megjelenik a kliens oldalon. Ha nem, akkor az oldalon az adott helyen. • DisplayMode tulajdonság a megjelenés módját szabályozza: • HeaderText: Bevezető szöveget definiál.

  24. Ellenőrzés kikényszerítése if (this.IsPostBack) { this.Validate(); if (!this.IsValid) { (IValidatoraValidatorinthis.Validators) { if (!aValidator.IsValid) { msg += "<br />" + aValidator.ErrorMessage; } } }

  25. Ellenőrzés példák <asp:RangeValidator id="rangeValInteger" Type="Integer"ControlToValidate="txtComp1"MaximumValue="10"MinimumValue="1" runat="server"/> <asp:ValidationSummary ID="valSum" runat="server" HeaderText="You must enter a value in the following fields:" Font-Name="verdana" Font-Size="12" /> <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" ValidationExpression="^\d{5}$" Display="Static" Font-Name="verdana" Font-Size="10pt"> Zip code must be 5 numeric digits </asp:RegularExpressionValidator>

  26. Gyakorlat • Msdn.microsoft.com • Web development • ASP.NET 4 and Visual Studio 2010 • ASP.NET WalkthroughsbyScenario • Walkthrough: Validating User Input in a Web Forms Page • http://msdn.microsoft.com/en-us/library/a0z2h4sw(v=vs.100).aspx

  27. Kliens oldali ellenőrzés • Alapértelmezetten bekapcsolt. • EnableClientScript tulajdonság • Ha engedélyezve van, akkor generálódik a megfelelő kód, nem kell tenni semmit. • aspnet_client mappában vannak a szkriptek. • Submit előtt futnak le, tehát kell submit-oló vezérlő.

  28. Kliens oldali ellenőrzés • Page_IsValidfigyelése, ami itt globális változó. • Page_Validatorsellenőrzők listája. • Page_ValidationActiveigaz, ha engedélyezett a kliens oldali ellenőrzés. <script language="javascript" src="/aspnet_client/system_web/1_0_3617_0/WebUIValidation.js"> </script>

  29. Ellenőrző csoportok • ValidationGrouptulajdonság (string) • A post-oló, avizgált bemeneti és az ellenörző vezérlőt tegyük egy csoportba! • Ha egy vezérlő post-ol, akkor csak az abban a csoportban levő ellenőrzők futnak le. • Érdemes több ellenőrző csoportot létrehozni a form-on, rakjuk panelekre. • Kliens, és szerver oldalon is működik.

  30. Feladat – ellenőrző csoportok • Hozzuk létre a következő egy szerű alkalmazást!

  31. Feladat – ellenőrző csoportok • Az ellenőrzők a mellettük lévő beviteli mezőt ellenőrizzék! • Az alsó label-be írjuk be az oldal betöltésének idejét!(Label1.Text = DateTime.Now.ToString();) • Ne felejtsük el kitölteni az ErrorMessage-et! • Első esetben ne állítsunk be ellenőrző csoportokat (üresen hagyni)! • A gombok eseménykezelőjében a label1-be írjuk be, hogy melyik gomb eseménye futott le, ha érvényes az oldal (Page.IsValid)

  32. Probák • Példa 1 • Töltsük ki az első mezőt! • Nyomjuk meg az első gombot! • Példa 2 • Töltsük ki az első mezőt! • Nyomjuk meg a második gombot!

  33. Beállítások - futások • Kapcsoljuk ki a kliens oldali ellenőrzés! • futtassuk le a teszteket • Állítsunk be ellenőrző osztályokat! (Azonos soroknak azonos legyen.) • futtassuk le a teszteket • Kapcsoljuk be a kliens oldali ellenőrzés! • futtassuk le a teszteket • Közben vizsgáljuk meg a HTML válaszokat a böngészőben!

  34. Első oldal kiszolgálás • Page and its controls are created, based on ASPX file. • Page_Load event fires. • Page and control properties are saved to a hidden field. • Page and controls are turned into HTML. • Everything is thrown away.

  35. Postback kiszolgálás • Page and its controls are created based on ASPX file. • Page and control properties are recovered from hidden field. • Page controls are updated based on user input. • Page_Load event fires. • Change notification events fire. • Page and control properties are saved to a hidden field. • Page and controls are turned into HTML. • Everything is thrown away again.

More Related