Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán.

Hasonló előadás


Az előadások a következő témára: "Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán."— Előadás másolata:

1 Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán

2 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?

3 Két fajtája van, a programozó munkája ugyanaz Kliens oldali(uplevel client support): DHTML, java szkript Szerver oldali(downlevel client support): ilyenkor visszaküldi az oldalt hibaüzenet a vezérlő mellett. a feldolgozás alatt: Page.IsValid – akkor érvényes az oldal, ha minden vezérlő az! ha még nem volt ellenőrzés, akkor kivétel keletkezik!

4 1. Helyezzünk fel egy beviteli mezőt! 2. Helyezzük fel az ellenőrző vezérlőt! 3. Állítsuk be a ControlToValidate tulajdonságát az ellenőrzőnek a beviteli vezérlőre! 4. Állítsuk be a ErrorMessage tulajdonságát az ellenőrzőnek a hiba jelzés szövegére! 5. Text tulajdonságot állítsuk be! Ez mindig megjelenik. pl. : * 6. Helyezzünk egy ValidationSummary vezérlőt a formra!

5 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 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 (view state, 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 SelectedItem.ValueRadioButtonList SelectedItem.ValueDropDownList SelectedItem.ValueListBox TextTextBox ValueHtmlInputFile ValueHtmlSelect ValueHtmlTextArea ValueHtmlInputText Ellenőrzött tulajdonságVezérlő

8 Formája: RequiredFieldValidator: a felhasználónak ki kell töltenie a vezérlőt CompareValidator: egy konstans,vagy msáik vezérlő viszonya (, …) RangeValidator: konstans értékek közé esike? (szám betű, dátum) RegularExpressionValidator: reguláris kifejezésre illik e? CustomValidator: saját kód ellenőrzi ValidationSummary: megjeleníti az oldalon használt ellenőrzők eredményeit

9 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 Kliens oldalon is lehet ellenőrizni, de Szerver oldalon kötelező

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

12 Data TypeDescription StringA string data type. IntegerA 32-bit signed integer data type. Double A double-precision floating point number data type. DateA date data type. Currency A decimal data type that can contain currency symbols. MinimumValue, MaximumValue, Type

13 <asp:RangeValidator ID="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">*

14 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 OperationJelentés Equal= NotEqual!= GreaterThan> GreaterThanEqual>= LessThan< LessThanEqual<= DataTypeCheckOlyan típusú e

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

17 <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="Password2" ControlToCompare="Password" ErrorMessage="The passwords don't match" Type="String" Display="dynamic">

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

19 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, ServerValidateEventArgs args) Value-ban kapjuk a vizsgált értéket IsValid-ot állítsuk be (true vagy false) Kliens oldal esetén ClientValidationFunction tulajddonság

20 <asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="EmpID" ClientValidationFunction="EmpIDClientValidat e" OnServerValidate="EmpIDServerValidate" ErrorMessage="ID must be a multiple of 5" Display="dynamic">*

21 function EmpIDClientValidate(ctl, args) { // the value is a multiple of 5 if the modulus by 5 is 0 args.IsValid=(args.Value%5 == 0); }

22 ServerValidate esemény protected void EmpIDServerValidate(object sender, ServerValidateEventArgs args) { try { args.IsValid = (int.Parse(args.Value) % 5 == 0); } catch { args.IsValid = false; }

23 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 if (this.IsPostBack) { this.Validate(); if (!this.IsValid) { (IValidator aValidator in this.Validators) { if (!aValidator.IsValid) { msg += " " + aValidator.ErrorMessage; }

25 Zip code must be 5 numeric digits

26 http://msdn.microsoft.com/en- us/library/a0z2h4sw(v=vs.100).aspx

27 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 Page_IsValid figyelése, ami itt globális változó. Page_Validators ellenőrzők listája. Page_ValidationActive igaz, ha engedélyezett a kliens oldali ellenőrzés.

29 ValidationGroup tulajdonság (string) A post-oló, a vizgá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 Hozzuk létre a következő egy szerű alkalmazást!

31 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 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 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 1. Page and its controls are created, based on ASPX file. 2. Page_Load event fires. 3. Page and control properties are saved to a hidden field. 4. Page and controls are turned into HTML. 5. Everything is thrown away.

35 1. Page and its controls are created based on ASPX file. 2. Page and control properties are recovered from hidden field. 3. Page controls are updated based on user input. 4. Page_Load event fires. 5. Change notification events fire. 6. Page and control properties are saved to a hidden field. 7. Page and controls are turned into HTML. 8. Everything is thrown away again.


Letölteni ppt "Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán."

Hasonló előadás


Google Hirdetések