Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET)

Hasonló dokumentumok
Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET) Cserép Máté.

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 3. előadás. Objektumrelációs adatkezelés (ASP.NET)

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET)

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) 2015 Giachetta Roberto

Swing GUI készítése NetBeans IDE segítségével

Webes alkalmazások fejlesztése 6. előadás. Weblapok fejlesztése és architektúrája (ASP.NET)

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) Állapotfenntartás. Állapotfenntartás. Állapotfenntartás.

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté

Webshop készítése ASP.NET 3.5 ben I.

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Programozási technológia

Models are not right or wrong; they are more or less useful.

Webes alkalmazások fejlesztése

3. Beadandó feladat dokumentáció

JavaServer Pages (JSP) (folytatás)

Java programozási nyelv 6. rész Java a gyakorlatban

HTML és CSS. Horváth Árpád május 6. Óbudai Egyetem Alba Regia M szaki Kar (AMK) Székesfehérvár

Weblap készítése. Fapados módszer

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET)

Force-X Content Management System, keskenynyomda.hu felhasználói dokumentáció

HTML 5 - Start. Turóczy Attila Livesoft Kft

Szoftvertechnolo gia gyakorlat

és az instanceof operátor

Rövid leírás a Make Your Mark szoftver használatához

HVK Adminisztrátori használati útmutató

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön

Memória játék. Felhasználói dokumentáció

PHP. Adatbázisok gyakorlat

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java Programozás 11. Ea: MVC modell

Webes alkalmazások fejlesztése 5. előadás. Adatbevitel és validáció (ASP.NET) Cserép Máté.

Bánsághi Anna 2015 Bánsághi Anna 1 of 31

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) Cserép Máté.

T-AVL Nyomkövető webkliens

Webes alkalmazások fejlesztése 6. előadás. Állapotfenntartás (ASP.NET) 2015 Giachetta Roberto

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

Google Maps használata OSM, mint alternatív térkép

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

w w w. h a n s a g i i s k. h u

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

HTML kódok. A www jelentése World Wide Web.

Felhasználói kézikönyv - Android kliens

Alapvető beállítások elvégzése Normál nézet

HTML sablon tervezése

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Pick Pack Pont kereső és boltválasztó alkalmazás

UI megismerése, különböző felbontások támogatása, használati jogok kérése

Választó lekérdezés létrehozása

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Tartalomjegyzék. 1. Rövid áttekintés Az alkalmazás bemutatása Vonalak Részletes lista... 5

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

A WORDPRESS TESTRESZABÁSA (MEGJELENÉS MENÜ ELEMEI)

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.

ANDROID ALKALMAZÁSFEJLESZTÉS

CSS3 alapismeretek. Bevezetés a CSS-be. Mi is az a CSS? Alkalmazási formái, szintaxisa

Tanúsítványok kezelése az ibahir rendszerben

Java II. I A Java programozási nyelv alapelemei

Tájékoztató. Használható segédeszköz: -

Models are not right or wrong; they are more or less useful.

Széchenyi István Egyetem. Műszaki Tudományi Kar. Informatikai és Villamosmérnöki Intézet Távközlési Tanszék. Villamosmérnöki szak HTML

1. kép. A Stílus beállítása; új színskála megadása.

JAVA webes alkalmazások

Az image objektum. Az image eseménykezel i. Képek el zetes betöltése. Feladat. Váltóképek készítése

Osztályok. 4. gyakorlat

HTML kódolás Web-lap felépítése. Az egész törzsre érvényes utasítás. <HTML> web-lap kezdő utasítás: a dokumentum kezdődik, a böngészőnek szól

Felhasználói leírás a DimNAV Server segédprogramhoz ( )

Számológép. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

GroupWise Naptár közzétételi gazda felhasználó

Információs technológiák 2. Gy: CSS, JS alapok

Java grafikai lehetőségek

Mobil Informatikai Rendszerek

Webprogramozás szakkör

Tájékoztató. Használható segédeszköz: -

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Az SQL*Plus használata

Internet, Az internet főbb szolgáltatásai web keresőszolgáltatásokkal Keresőrendszerek: Kulcsszavas 2) Egyéb keresők: Metakeresők gyűjtőkörű keresők

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Szoftvertechnológia alapjai Java előadások

Webes alkalmazások fejlesztése 10. előadás. Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Multimédia 2017/2018 II.

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

S z á m í t ó g é p e s a l a p i s m e r e t e k

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

DIGITÁLIS TANÚSÍTVÁNY HASZNÁLATA A REGIONÁLIS BOOKING PLATFORMON

1. beadandó feladat dokumentáció

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Nézetek kezelése Sok esetben a nézetünk különböző részekből áll, amelyek egymástól függetlenül változhatnak bizonyos részek (pl. címsor, menü) több oldalon is szerepelnek, másokat folyamatosan cserélünk az ismétlődő részek adják meg a weblapunk egységes kinézetét Az ismétlődő tartalmat kiemelhetjük, és felhasználhatjuk több nézetben ezek így nem feltétlenül egy vezérlőhöz tartoznak, hanem megosztottak a vezérlők között (shared view), amelyeket a Views/Shared könyvtárba helyezünk ELTE IK, Webes alkalmazások fejlesztése 4:2

Parciális nézetek A parciális nézet (partial view) olyan nézet, amely nem a teljes oldalt, csak annak egy részét adja meg ezt a tartalmat egy másik nézetben megjeleníthetjük a Html.RenderPartial utasítással megadjuk a nézet nevét, emellett megadhatjuk az ott használandó modellt, illetve nézet tulajdonságokat pl. (Item.cshtml): @model String @* a modell szöveg típusú *@ <span><b>@model</b> @* nem teljes a tartalom *@ @Html.ActionLink("See details", "Details", Model); </span> ELTE IK, Webes alkalmazások fejlesztése 4:3

Parciális nézetek pl. (MyView.cshtml): @model IEnumerable<String> <body> <div> @foreach (String name in Model){ Html.RenderPartial("Item", name); // meghívjuk a parciális nézetet, // átadjuk a nézetmodellt } </div> </body> ELTE IK, Webes alkalmazások fejlesztése 4:4

Parciális nézetek nézet kérés válasz kliens parciális betöltés parciális betöltés parciális nézet parciális nézet eredmény HTML összeállítása ELTE IK, Webes alkalmazások fejlesztése 4:5

Parciális nézetek a parciális nézet közvetlenül is létrehozható egy vezérlőből a PartialView metódussal, ekkor a nézetben a RenderAction művelet fogja a tartalmat betölteni így a modellt, és a nézet tulajdonságait a vezérlő fogja definiálni pl.: public class ProductController : Controller { public PartivalViewResult Details(int id){ Item item = return PartialView("Details", item); } } ELTE IK, Webes alkalmazások fejlesztése 4:6

Elrendezések Az elrendezés (layout) lehetőséget ad, hogy egy oldalon belül több cserélhető tartalmat adjuk meg, amelyeket más nézetekből töltsünk be az elrendező nézet a keret, amely az állandó tartalmat definiálja a behelyettesíthető tartalmak a szakaszok (section), amelyek az egyes nézetekben definiáltak a szakaszokat @section <név> { } blokk segítségével adjuk meg speciális szakasz a törzs (body), amelyet nem jelölünk be kell hivatkoznunk az elrendezést a Layout tulajdonsággal ELTE IK, Webes alkalmazások fejlesztése 4:7

Elrendezések pl. (View.cshtml): @model ProductsModel @{ Layout = "~/Views/Shared/_Layout.cshtml; // használunk egy elrendezést } @section mainmenu { // szakasz a menühöz foreach (String item in Model.ItemTypes) <div>@html.actionlink()</div> } @* a közvetlenül megadott tartalom a törzs *@ <div id="title">list of Products</div> @section mainfooter { } // újabb szakasz ELTE IK, Webes alkalmazások fejlesztése 4:8

Elrendezések az elrendező nézetben a törzset a RenderBody(), a további szakaszokat a RenderSection(<név>) utasítással helyezhetjük el elhelyezhetünk feltételesen is szakaszokat a required opcióval (nem kötelező, hogy a szakasz definiált legyen) a szakasz megléte ellenőrizhető az IsSectionDefined(<név>) művelettel az elrendező nézet fájlnevét konvenció szerint aláhúzással kezdjük, az alapértelmezett elrendezés a Views/Shared/_Layout.cshtml ennek használatához nem kell a Layout tulajdonság az elrendezések egymásba ágyazhatóak ELTE IK, Webes alkalmazások fejlesztése 4:9

Elrendezések pl.: <body> @* egyéb tartalom *@ <div id="menu"> @RenderSection("mainMenu") @* egy szakasz betöltése *@ </div> <div id="mainpage"> @RenderBody() @* fő szakasz betöltése *@ </div> <div id="footer"> @RenderSection("mainFooter", false) </div> @* opcionális szakasz *@ </body> ELTE IK, Webes alkalmazások fejlesztése 4:10

Parciális nézetek kérés nézet szakasz 1 elrendezés nézet szakaszhely 1 kliens szakasz n szakaszhely n válasz eredmény HTML összeállítása ELTE IK, Webes alkalmazások fejlesztése 4:11

Nézetek kezelése Elrendezéseket célszerű használni, amennyiben: az oldalunk keretét, struktúráját szeretnénk definiálni (pl. menü, fejléc) ugyanazok elemeket szeretnénk ugyanolyan módon megjeleníteni több oldalon Parciális nézeteket célszerű használni, amennyiben: ugyanolyan elemeket változó környezetben szeretnénk használni (pl. bejelentkező doboz), vagy egy adott elemet szeretnénk cserélhetővé tenni (pl. táblázat/diagram) az oldalnak csak egy részét szeretnénk változtatni, illetve újra betölteni ELTE IK, Webes alkalmazások fejlesztése 4:12

Fájltartalom kezelése Lehetőségünk van tetszőleges fájl tartalmat (pl. képek, dokumentumok, csomagolt fájlok) küldeni a felhasználónak a tartalom rendelkezik egy típussal (internet media type), amennyiben a böngésző meg tudja jeleníteni, akkor megjelenítheti, egyébként felkínálhatja letöltésre fájltartalmat a File metódussal tölthetünk be megadhatjuk a tartalmat binárisan, adatfolyamként, vagy elérési útvonallal meg kell adnunk a típust megadhatjuk a letöltési fájl nevet (ekkor mindenképpen letöltésre ajánlja fel) ELTE IK, Webes alkalmazások fejlesztése 4:13

Fájltartalom kezelése pl.: return File("/Content/Pictures/image.jpg", "image/jpg"); // JPEG kép betöltése a fájlrendszerről Byte[] imagefile = // betöltés adatbázisból Return File(imageFile, "image/png", "image.png"); // PNG kép betöltése az adatbázisból, majd // letöltése (alapértelmezetten) image.png // néven a megjelenített fájltartalmat az Url.Action művelet használatával beágyazhatjuk a nézetbe ELTE IK, Webes alkalmazások fejlesztése 4:14

Példa Feladat: Valósítsuk meg egy utazási ügynökség weblapját, amelyben apartmanok között böngészhetünk (képekkel). a kódismétlődés elkerülése végett használjuk elrendezést (_Layout.cshtml), amelyben megadjuk a fejlécet, illetve a városok listáját az Index és Details oldalakban csak a különböző részeket adjuk meg a képek megjelenítéséhez két új akciót adunk meg, egyikkel a listában tudunk minden épülethez egy képet adni (ImageForBuilding), a másikkal egyenként tudjuk a képeket betölteni kis és nagy méretben (Image) előfordulhat, hogy nincs kép (NoImage.png) ELTE IK, Webes alkalmazások fejlesztése 4:15

Példa Megvalósítás (Index.cshtml): @{ Layout = "~/Views/Shared/_Layout.cshtml"; // megadjuk az elrendezést } @* csak a törzset adjuk meg *@ <img src="@url.action("imageforbuilding", new { buildingid = Model[j].Id })" border="0" class="contentimage" /> ELTE IK, Webes alkalmazások fejlesztése 4:16

Példa Megvalósítás (HomeController.cshtml): public FileResult ImageForBuilding(Int32? buildingid) { if (buildingid == null) // nem adtak meg azonosítót return File("~/Content/NoImage.png", "image/png"); // lekérjük az épület első tárolt képét // (kicsiben) Byte[] imagecontent = return File(imageContent, "image/png"); } ELTE IK, Webes alkalmazások fejlesztése 4:17

Térképek megjelenítése Nem csak fájltartalmakat, de kiegészítő csomagokkal bármilyen webes tartalmat meg tudunk jeleníti a nézetben Lehetőségünk van Google térkép megjelenítésére a GoogleMapsHelpers NuGet csomag segítségével a térképet a Html.GoogleMaps művelettel helyezhetjük el, megadva megjelenési beállításokat statikus térképet a Html.StaticMapsApi művelettel hozhatunk létre, megadva a pozíciót, nagyítást, a térkép használatához egyedi fejlesztői kulcsra van szükségünk, amelyet a konfigurációban (web.config) kell elhelyeznünk ELTE IK, Webes alkalmazások fejlesztése 4:18

Példa Feladat: Valósítsuk meg egy utazási ügynökség weblapját, amelyben apartmanok között böngészhetünk (képekkel és térképpel). az épületek elhelyezkedése tárolva van az épületek táblában (LocationX, LocationY), ezt csak át kell adnunk szöveges formában a térképnek (ügyelve arra, hogy ponttal kell elválasztani a tizedesrészt) a Google térképet a Details oldalon jelenítjük meg, megadva a méretet, illetve a megjelölt koordinátát a konfigurációban (web.config) megadjuk az egyedi térképkulcsot ELTE IK, Webes alkalmazások fejlesztése 4:19

Példa Megvalósítás (Details.cshtml): @Html.GoogleMaps(new { style = "width: 600px; height: 400px"}) @* betöltjük a Google térképet, és megjelöljük benne az épület elhelyezkedését *@ @Html.StaticMapsApi(new MapOptions( Model.LocationX.ToString("F6", CultureInfo.CreateSpecificCulture("en-US")) + "," +, 13)) @* a számot az angol szabványnak megfelelően (ponttal elválasztva) kell szöveggé konvertálnunk *@ ELTE IK, Webes alkalmazások fejlesztése 4:20