oldal szerkezete

Most, hogy tudjuk, hogyan kell nézni feldolgozási lépések a webes űrlapok, itt az ideje, hogy többet arról, hogy ez illeszkedik a szállítószalag modell szerver ellenőrzések. Ahhoz, hogy láthatóvá tegyük a webes űrlap oldalon kell lépni minden alkotó ellenőrzéseket. Tény, hogy egy internetes űrlap első láthatóvá magát, majd megkéri, minden kezelőszerv az oldalon is láthatóvá. Mindegyik ellenőrzések viszont tartalmazhat gyermek ellenőrzést, amelyek szintén felelősek a saját megjelenítési kód.

Amint az ellenőrzések válnak, az oldal összegyűjti a generált HTML-jelölés a teljes oldalt. Első pillantásra úgy tűnik, a folyamat egy kicsit bonyolult, de kínál elképesztő teljesítmény és a rugalmasság, hogy a fejlett weboldal felületén.

A következő fa ellenőrzések

Az alábbiakban egy példát kód, amely végrehajtja a keresés ellenőrzéseket. Amikor ezt a kódot kiderül néhány ellenőrzés, akkor használja a Response.Write () parancsot adni, hogy a végén a megjelenített HTML-oldal információt, hogy milyen típusú az osztály e-szabályozás és azonosító, az alábbiak szerint:

Ennek tesztelésére a kódot, akkor add hozzá a felvezető Page.Load eseményeket. Ebben az esetben, a konvertált tartalom tetején jelenik meg előtt a kontrollok. Azonban, ha futtatni, figyelni nem várt viselkedést.

Vegyük például egy web alakú látható az alábbi ábrán, amely több vezérlő elemek, és néhány közülük vannak szervezve panel használatával című oldallap kontroll. Azt is tartalmaz két sornyi szöveget statikus HTML:

oldal szerkezete

A futás az oldalon látni fogja nem egy teljes listát az ellenőrzést, de csak a következő listát:

oldal szerkezete

ASP.NET szimulál teljes oldalt használja a tárgyakat az ellenőrzések és elemek, amelyek nem felelnek meg a kiszolgáló tartalmának, befogadó. Például, ha az oldal egy szerver-szabályozás, ASP.NET létrehoz LiteralControl objektumot. képviselő minden statikus tartalmat a vezérlőelem, és egy másik tárgy LiteralControl, amely a tartalmat ezt követően. Attól függően, hogy az összeg a statikus tartalom és a módszer a forgalmazási többek között vezérlők kaphat több objektum LiteralControl.

Tárgyak LiteralControl kevéssé funkcionális szempontból. Például, ha nem lehet beállítani a kapcsolódó adatokat stílusok, mint például a szín és betűtípus. Ők is, nem egyedi szerver azonosítókat. Azonban lehet manipulálni a tartalmát LiteralControl segítségével tulajdonságait szöveg.

ASP.NET jeleníti meg az oldalt hierarchikus módon. Azonnal láthatóvá csak a legmagasabb szintű ellenőrzéseket. Ha ezek a kontrollok egyéb ellenőrzések, hogy saját tulajdonságai Controls, amely hozzáférést biztosít a gyermek ellenőrzéseket. A megtekintett oldalak, mint minden ASP.NET webes űrlapok, mind a kontroll ágyazott fogantyú

. Ez azt jelenti, hogy annak érdekében, hogy a rendelkezésre álló, ezen az oldalon a szerver ellenőrzések is szükséges vizsgálni a Controls gyűjteményosztályt HtmlForm.

Azonban nem szükséges, hogy minden rendben lesz olyan egyszerű, mert a határ, hogy több szinten beágyazott elemeket lehet használni, nem létezik. Ahhoz, hogy valóban megoldja ezt a problémát, és megjeleníti az összes ellenőrzés az oldalon, akkor létre kell hozni egy rekurzív programot, hogy sor kerülhet a fa körül ellenőrzéseket.

A következő kód azt mutatja, hogyan kell kinéznie, mintha az egész megoldás:

A képen az új eredmény - egy hierarchikus fa mutatja az összes elérhető az oldalon ellenőrzések és azok párzási rendszer:

oldal szerkezete

Az oldal címe

Ahogy már láttuk, akkor konvertálni bármilyen HTML-elem a szerver elem a runat = „server” attribútum kezelése, valamint az oldal tartalmazhat korlátlan számú HTML ellenőrzéseket. Amellett, hogy az ellenőrzések hozzá webűrlap is egy külön elem HtmlHead kezelése. előírja szerver hozzáférési leíró .

Wood látható gombokkal az előző példában, tartalmazza az elem menedzsment HtmlHead attribútum runat = „server” nem alkalmazható a leíró az oldalon. Azonban alapértelmezés szerint a Visual Studio mindig nem kezeli szerver-szabályozás, ellentétben a korábbi verziók ASP.NET.

Mivel ez a helyzet a többi szerver ellenőrzések, akkor HtmlHead gombbal változtassa meg a program tartalmát át kell alakítani a leíró . A különbség abban rejlik, hogy a fogantyú Ez nem felel meg a tényleges tartalom, ami látható a weblapon. Ehelyett tartalmaz egyéb részleteket, mint a cím, meta tagek (hasznos olyan kulcsszavakat a keresők), és hivatkozik a stíluslapot. Ahhoz, hogy módosítsa ezeket a tételeket az egyike azon kevés tagjai az osztály HtmlHead, amelyek szerepelnek a táblázatban.

Hasznos tulajdonságai HtmlHead osztály

Cím HTML-oldalak, amelyeket általában megjelenik a címsorban a böngésző. Ez a tulajdonság lehet változtatni futás közben

Object IStylesheet. amely felelős a belső stílusokat a fejlécben megadott. IStylesheet tárgyat is fel lehet használni, hogy dinamikusan új stílust szabályokat kódot írni, hogy felhívja a módszerek CreateStyleRule () és RegisterStyle ()

Szöveg metadeskriptore leírás, amely leírására használják a weboldal létrehozását a keresőprogramok, mint a Google

Szöveg metadeskriptore kulcsszavakat. Miután ez metadeskriptor a keresőmotorok, hogy meghatározzák keresőmotorok rangsorolását különleges kérések, most szinte minden figyelmen kívül hagyni

A gyűjtés és HtmlMeta osztály, akkor programozott hozzá, és távolítsa el a metaadatok leírásokat. Ez akkor hasznos, ha a felvenni kívánt metadeskriptory eltér a leírás és a kulcsszavak

Íme egy példa, amelyben a tájékoztatás a cím és a meta tagek vannak beállítva dinamikusan

Olyan dinamikus ellenőrzés

A Controls gyűjtemény lehet programozottan létrehozni, és hozzá a tételt oldalát. Az alábbiakban egy példát az új generációs kulcsok és add hozzá a panelt:

Akkor ezt a kódot bármilyen eseménykezelő. Azonban, mivel az oldal már elkészült, ezt a kódot mindig egy új szabályozás, hogy a végén a gyűjtemény. Ebben a példában ez azt jelenti, hogy egy új gomb lesz az alsó része panel vezérlés.

Ahhoz, hogy jobban kézben tarthassa a dinamikus vezérlési berendezés is használható Placeholder - ellenőrzés, amelynek célja az, hogy helyezze a másik ellenőrzéseket. Ha hozzá egyéb ellenőrzések a Controls gyűjtemény a kontroll Placeholder, akkor nem változtat semmit a végső weboldalt. Visual Studio meghatározza a vizuális ábrázolás alapértelmezett formájában a hagyományos címke tervezése során, így gondoskodik Placeholder elem, ahol csak akar. Ugyanígy lehetséges, hogy helyezze a dinamikus szabályozás többek között ellenőrzések:

Ha dinamikus ellenőrzés, vegye figyelembe, hogy léteznek csak a következő postback. ASP.NET nem fogja újra létrehozni dinamikusan szabályozásra. Ha azt szeretnénk, hogy megteremtse a kontroll többször is meg kell tenni a felvezető Page.Load eseményeket.

Ez a módszer további előnye, hogy lehetővé teszi a használatát a dinamikus állapotát egy vezérlőelem. Még ha a nézet állam általában helyreáll az esemény előtt Page.Load, ha létre a vezérlés az eseménykezelő Page.Load ASP.NET használ semmilyen információt az állapota a benyújtás végén az eseménykezelő. Ez a folyamat automatikus.

Ha megy, hogy kölcsönhatásba lépnek a kontroll később meg kell rendelni egy egyedi azonosítót. Ez az azonosító lehet használni a kivonat a vezérlőelem a gyűjtőtartály Controls. Keresse kontroll segítségével egy rekurzív keresés logika, amint azt a példa fa ellenőrzések, vagy statikus Page.FindControl () metódust. amely megkeresi a vezérlő a megadott azonosító a felső szintű gyűjtemény Page.Controls. Az alábbiakban egy példa, amelyben a via FindControl () módszer megkeresi dinamikusan hozzáadott kontroll, amelyet azután eltávolítunk,:

Dinamikusan hozzáadott ellenőrzések kezelni az eseményeket. Azt kell csak csatlakoztatni az eseménykezelő kódot a küldöttet. Meg kell csinálni ezt a felvezető Page.Load eseményeket. Amint azt korábban kimutatták, az összes kapcsolódó események Az ellenőrzések után keletkezett Page.Load eseményeket. Ha tovább vár, az eseménykezelő fog kapcsolódni után kiváltó esemény, és akkor nem lesz képes válaszolni rá:

Dinamikus szabályozóelemek különösen erős, ha együtt felhasználói kezelőszervek (azaz blokkolja a felhasználói felület, amely lehetővé teszi többszörös használat, és tartalmazhat számos vezérlővel, és a HTML).