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

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

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 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

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 6. előadás. Weblapok fejlesztése és architektúrája (ASP.NET)

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

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

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

Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (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. Bevezetés az ASP.NET MVC 5 keretrendszerbe

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

Webes alkalmazások fejlesztése

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

Programozási technológia

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

3. Beadandó feladat dokumentáció

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

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

HTML 5 - Start. Turóczy Attila Livesoft Kft

JavaServer Pages (JSP) (folytatás)

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

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

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 5. előadás. Adatbevitel és validáció (ASP.NET) Cserép Máté.

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

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

Szoftvertechnolo gia gyakorlat

és az instanceof operátor

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

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

HVK Adminisztrátori használati útmutató

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

PHP. Adatbázisok gyakorlat

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

JAVA webes alkalmazások

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

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

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

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

T-AVL Nyomkövető webkliens

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.

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

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ő

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

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

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

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

HTML sablon tervezése

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

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

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

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

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

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

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

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

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

Java grafikai lehetőségek

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Mobil Informatikai Rendszerek

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

Képnézeget. Gépigény: Bármilyen számítógépen m ködik, amin található böngész és Internet elérés.

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

Szoftvertechnológia alapjai Java előadások

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

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é

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

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.

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

A webprogramozás alapjai. Óbudai Egyetem Neumann János Informatikai Kar 2018/19/1 szemeszter

Földmérési és Távérzékelési Intézet

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Osztályok. 4. gyakorlat

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

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

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

DRUPAL 7. újdonságai. Hojtsy Gábor Drupal Hétvége, Budapest november 14. Angela Byron fóliái alapján

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ó

Responsive Web Design. Dr. Nyéki Lajos 2019

Webprogramozás szakkör

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

Az SQL*Plus használata

Átírás:

Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 4. előadás (ASP.NET) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Készült Giachetta Roberto jegyzete alapján http://www.inf.elte.hu/karunkrol/digitkonyv/

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

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:15

Példa Feladat: Valósítsuk meg egy utazási ügynökség weblapját, amelyben apartmanok között böngészhetünk. 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:16

Példa 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, (http://console.developers.google.com, Google Maps JavaScript API) ELTE IK, Webes alkalmazások fejlesztése 4:17

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:18

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: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