MasterPage w ASP.NET

Podobne dokumenty
ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Infrastruktura aplikacji WWW

Tworząc aplikacje internetowe przy użyciu Visual

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Tworzenie Stron Internetowych. odcinek 9

4 AS SP.NET MVC. Widok. Zaawansowane programowanie internetowe Instrukcja nr 4

5.4. Tworzymy formularze

APLIKACJA SHAREPOINT

Laboratorium 7 Blog: dodawanie i edycja wpisów

Przewodnik... Tworzenie Landing Page

STRONY DEALERSKIE W SYSTEMIE K2

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

Laboratorium 6 Tworzenie bloga w Zend Framework

Zadanie 1. Tworzenie nowej "strony sieci WEB". Będziemy korzystad ze stron w technologii ASP.NET.

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów

7. Formularze master-detail

Instrukcja platformy wideo

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Zasady tworzenia podstron

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Tworzenie prezentacji w MS PowerPoint

Facelets ViewHandler

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

ASP.NET Web Parts Krzysztof Jeliński Dawid Gawroński Toruń 2011/2012

Laboratorium 1 - Programowanie proceduralne i obiektowe

DODAJEMY TREŚĆ DO STRONY

Backend Administratora

5.2. Pierwsze kroki z bazami danych

Tworzenie i wykorzystanie usług sieciowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Przewodnik... Budowanie listy Odbiorców

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Budowanie listy Odbiorców

PLATFORMA DISTANCE LEARNING BLACKBOARD

plansoft.org Zmiany w Plansoft.org

Dodawanie grafiki i obiektów

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wikispaces materiały szkoleniowe

Pomoc dla systemu WordPress

Język C# A.1. Aplikacje konsolowe w języku C# A.1.1. Wprowadzenie

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Nowy szablon stron pracowników ZUT

Przewodnik Szybki start

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

Podstawy wzorca MVC MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Instalacja i opis podstawowych funkcji programu Dev-C++

Przewodnik... Tworzenie Formularza zapisu

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

16) Wprowadzenie do raportowania Rave

Instrukcja laboratoryjna cz.2

REFERAT O PRACY DYPLOMOWEJ

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Ćwiczenie 8. Kontrolki serwerowe

ABSOLUTNE POCZĄTKI. Logowanie Jak się zalogować? Jak się wylogować? Pasek narzędzi Szpilka dokująca... 3

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc

Kurs ECDL Moduł 3. Nagłówek i stopka Microsoft Office Word Autor: Piotr Dębowski. piotr.debowski@konto.pl

Udostępnianie, publikowanie i zapisywanie aplikacji do pliku

Podstawy (X)HTML i CSS

Formatowanie tekstu przy uz yciu stylo w

Podstawy JavaScript ćwiczenia

Danuta ROZPŁOCH-NOWAKOWSKA Strona Moduł 4. Przykład 1. Przykład 2. HTML 4.01 Transitional).

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Db4o obiektowa baza danych wersja.net

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Leszek Stasiak Zastosowanie technologii LINQ w

Aplikacje internetowe - laboratorium

RESTful WCF Services. Autor ćwiczenia: Piotr Ostrowski. Kroki ćwiczenia : 1. Utworzenie nowego projektu RESTful WCF.

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Temat: Organizacja skoroszytów i arkuszy

Ten krótki poradnik pomoże Ci zainstalować nasz katalog no-name na swojej stronie internetowej.

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

LEGISLATOR. Data dokumentu:24 maja 2013 Wersja: 1.3 Autor: Paweł Jankowski, Piotr Jegorow

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Zaawansowane aplikacje internetowe - laboratorium

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S KONFERENCJA

Tworzenie Stron Internetowych. odcinek 5

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

Projektowanie Graficznych Interfejsów Użytkownika. Robert Szmurło

Dokument hipertekstowy

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

MySource Matrix CMS. Prosty Interfejs Użytkownika INSTRUKCJA wersja 1.3 POLAND AUSTRALIA UNITED KINGDOM NEW ZEALAND UNITED STATES

Wypełnianie protokołów w USOSweb. Instrukcja dla osób prowadzących zajęcia dydaktyczne.

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

SterBox. Przygotowanie Strony Użytkownika

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Komputery I (2) Panel sterowania:

2 Podstawy tworzenia stron internetowych

Baza Aktów Własnych. Autor: Piotr Jegorow. ABC PRO Sp. z o.o.

Aplikacje WWW - laboratorium

MasterPagePracownicy.aspx

Transkrypt:

MasterPage w ASP.NET Paulo Gliwa Data opracowania: 23 VI 2017 Wstęp. Podczas tworzenia aplikacji internetowych na platformie ASP.NET mamy do użytku wiele przydatnych narzędzi przyśpieszających i ułatwiających naszą pracę. Jednym z takich narzędzi jest MasterPage. Co to jest MasterPage? MasterPage to swego rodzaju definicja-wzór strony. Szablon, do którego można wkleić uzupełniające elementy, które razem tworzą stronę gotową do wyświetlenia przez użytkownika. Korzystanie z MasterPage nie jest wymagane ale zdecydowanie otwiera nowe możliwości, które opiszę w tym streszczeniu. Tworzenie MasterPage. Aby stworzyć MasterPage należy utworzyć nowy plik z rozszerzeniem.master i dodać do niego kod strony jaki chcemy aby powtarzał się na stronach, które dziedziczą z naszego MasterPage, a następnie w miejscach, które zostaną później uzupełnione na stronach ASP należy umieścić kontrolkę ContentPlaceHolder i nadać jej id. Dodatkowo na górze strony należy dodać dyrektywę <%@ Master Language="C#" AutoEventWireup="true" CodeFile="nazwaMasterPage.cs" Inherits="nazwaMasterPage" %>. Następnie tworzymy plik o takiej samej nazwie, ale z rozszerzeniem.cs, w którym znajdować się będzie kod C# (w moim przypadku, można też użyć Visual Basic) dla naszego MasterPage. ASP.NET dzieli strony ASP i pliki MasterPage na dwa pliki w celu łatwiejszego zarządzania kodem. Każda strona składa się z pliku.aspx (kod xhtml) oraz.cs (kod C#) i podobnie jest z MasterPage, dlatego utworzyliśmy dwa pliki. Cały proces można wykonać również za pomocą kreatora w VisualStudio. Wystarczy kliknąć prawym klawiszem myszy na nazwie projektu i dodać nowy plik MasterPage, a kod zostanie wstawiony automatycznie, po czym my musimy go dostosować do swoich potrzeb. VisualStudio zapewnia nam także widok Design, w którym możemy edytować niektóre elementy strony (tekst, ułożenie paneli i kontrolek, rozmiar paneli itp.) i widzimy jak będzie wyglądać nasza strona po uruchomieniu jej w przeglądarce, a także widok Split, który dzieli obszar roboczy na widok Design i Source, tak aby widzieć podgląd strony i kod źródłowy jednocześnie. Wszystkie zmiany wprowadzone w widoku Design są automatycznie wstawiane w kodzie źródłowym i vice versa. Używanie MasterPage. W celu wykorzystania głównej funkcjonalności MasterPage, należy utworzyć nową stronę ASP z rozszerzeniem.aspx (najlepiej za pomocą kreatora VisualStudio, wtedy utworzy nam 1

dodatkowo plik.aspx.cs i doda do obu plików odpowiedni kod) i wybrać dla niej nasz utworzony MasterPage. Do pliku.aspx zostaną dodane kontrolki Content w ilości oraz o ContentPlaceHolderID odpowiadającym kontrolkom ContentPlaceHolder znajdującym się w pliku.master. Przykładowy plik MasterPage.master: <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:contentplaceholder id="contentplaceholderhead" runat="server"> <link href="app_themes/default_theme/style.css" rel="stylesheet" type="text/css" /> </head> <body> <form id="form1" runat="server"> <div> <div id="site"> <div id="header"> FORUM C-sharp <div id="site_nav"> <ul> <asp:hyperlink ID="HyperLink2" runat="server" NavigateUrl="~/Default.aspx" Text="Strona Główna">Strona Główna</asp:HyperLink> <asp:hyperlink ID="accountHyperLink" runat="server" NavigateUrl="~/MyAccount.aspx?view=info">Moje konto (<asp:label ID="accountNameLabel" runat="server"></asp:label>)</asp:hyperlink> <asp:hyperlink ID="loginHyperLink" runat="server" NavigateUrl="~/Login.aspx" Text="Login">Zaloguj</asp:HyperLink> <asp:hyperlink ID="logoutHyperLink" runat="server" NavigateUrl="~/Logout.aspx" Text="Logout">Wyloguj</asp:HyperLink> <asp:hyperlink ID="registerHyperLink" runat="server" NavigateUrl="~/Register.aspx" Text="Zarejestruj">Zarejestruj</asp:HyperLink> </ul> <div id="content"> <asp:contentplaceholder id="contentplaceholdermain" runat="server"> <div id="footer"> <span class="user_count">uzytkownicy: <asp:label ID="userCountLabel" runat="server"></asp:label></span> <span class="creator">paulo Gliwa @ 2017</span> </form> </body> </html> 2

Przykładowy plik uzupełniający zawartość MasterPage, Login.aspx: <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Account_Login" %> <asp:content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderMain" Runat="Server"> login: <asp:textbox ID="loginTextBox" runat="server" Width="134px"></asp:TextBox> haslo:<asp:textbox ID="passwordTextBox" runat="server" Width="134px" TextMode="Password"></asp:TextBox> <asp:button ID="loginButton" runat="server" OnClick="loginButton_Click" Text="Zaloguj" Width="178px" /> <asp:label ID="loginInfoLabel" runat="server"></asp:label> Dzięki MasterPage każda strona jest o kilkadziesiąt linijek krótsza, przez co łatwiej jest zarządzać kodem, a także pliki zajmują o wiele mniej miejsca. Dodatkowo przy każdej zmianie wyglądu strony wystarczy zmiana treści jednego pliku, a nie mozolna edycja każdego pliku co może doprowadzić do niespójności pomiędzy stronami, na przykład gdy w jednym pliku zapomnimy edytować jeden z elementów. Dodatkowe funkcjonalności MasterPage. MasterPage to nie tylko sprytne kopiowanie zawartości, ale także sposób na zarządzanie nią. W kodzie źródłowym pliku MasterPage możemy przechowywać różne informacje, do których chcemy uzyskać dostęp na wielu stronach. Jeżeli na przykład data ostatniej modyfikacji portalu nie pojawia się w stopce (która często jest umieszczana w MasterPage), ale bardzo często umieszczamy taką informację na podstronach i za każdym razem znajduje się ona w innym miejscu, to ponownie, aby nie zmieniać każdego pliku z osobna, możemy utworzyć publiczną zmienną w pliku MasterPage.master.cs Przykładowy plik MasterPage.master.cs: using System; public partial class MasterPage : System.Web.UI.MasterPage DateTime datamodyfikacji; protected void Page_Load(object sender, EventArgs e) //Page_Load wykonuje się za każdym razem gdy użytkownik uruchamia stronę this.datamodyfikacji = new DateTime(2017, 6, 22); public DateTime DataModyfikacji get return datamodyfikacji; set datamodyfikacji = value; Aby wykorzystać tą zmienną na stronie ASP, należy najpierw dodać do niej dyrektywę <%@ MasterType virtualpath="~/master.master" %>. To pozwala nam na dostęp do funkcji i atrybutów pliku MasterPage. 3

Przykładowy plik Info.aspx: <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Info.aspx.cs" Inherits="Info" %> <%@ MasterType virtualpath="~/master.master" %> <asp:content ID="Content2" ContentPlaceHolderID="ContentPlaceHolderMain" Runat="Server"> <asp:label ID="lastUpdatedLabel" runat="server"></asp:label> Przykładowy plik Info.aspx.cs: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Info : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) //pobranie daty ostatniej modyfikacji portalu z pliku MasterPage i ustawienie jako //tekst etykiety "lastupdatedlabel" lastupdatedlabel.text = Master.DataModyfikacji.toString(); Tak przygotowana strona ASP zostanie połączona z MasterPage i wyświetli etykietę (czyli tekst) z datą 22-06-2017 w miejscu ContentPlaceHolderMain. Co gdy z jakiegoś powodu nie dostarczymy zawartości w kontrolce Content, lub jedna strona różni się nieznacznie od reszty, więc chcielibyśmy zmienić zawartość MasterPage tylko na tej stronie? ASP.NET dostarcza nam w tym przypadku możliwość ustawienia zawartości domyślnej w pliku MasterPage. Aby ustawić zawartość domyślną wystarczy w pliku MasterPage.master dodać ją do kontrolki ContentPlaceHolder. Przykład: <asp:contentplaceholder id="contentplaceholderhead" runat="server"> To jest zawartość domyślna. Dodaj coś w kontrolce Content o ContentPlaceHolderID="ContentPlaceHolderHead" aby ją zmienić. W tym przypadku plik Info.aspx po scaleniu z MasterPage wyświetliłby powyższy tekst, ponieważ nie dodaliśmy nic do pierwszej kontrolki Content: 4

Wybór MasterPage. Jeżeli mamy taką potrzebę, możemy stworzyć dwa lub więcej plików MasterPage i zmieniać je podczas uruchomionej aplikacji (lub użytkownik może wybrać MasterPage jeżeli mu to umożliwimy). Dokonujemy tego za pomocą instrukcji w funkcji Page_PreInit() 1 : this.masterpagefile = nazwamasterpage ; Przy czym musi istnieć MasterPage o nazwie nazwamasterpage. Z mojego doświadczenia dynamiczny wybór pliku MasterPage jest rzadko przydatny. Niektórzy mogą pokusić się o zaimplementowanie w ten sposób funkcjonalności wyboru wyglądu portalu przez użytkownika, jednak jest to błędne podejście i należy w tym celu użyć innego narzędzia ASP.NET jakim jest Motyw (ang. Theme). Motywy to w skrócie zbiór plików.skin oraz plików graficznych i plików CSS, dzięki którym możemy wpłynąć na wygląd portalu. Opisanie tej funkcjonalności zajęłoby kolejny referat, więc w tym skupiłem się tylko na MasterPage. Wnioski. Jak widać z powyższych punktów, MasterPage w ASP.NET daje nam możliwość zaoszczędzenia czasu, kodu (a zatem i zasobów w pamięci przy bardzo rozbudowanych aplikacjach z wieloma podstronami). Podczas mojej pracy nad portalem dyskusyjnym zauważyłem, że bardzo często sięgałem do funkcji dostarczonych przez Microsoft w tej technologii i znacznie przyśpieszały one moją pracę. MasterPage jest tylko jednym z bardzo wielu przydatnych narzędzi frameworka ASP.NET i opisanie szczegółowo każdego z nich wymagałoby napisania obszernej książki, można więc wyobrazić sobie jak bardzo ułatwia on szybkie tworzenie skomplikowanych aplikacji. 1. Funkcja Page_PreInit wykonywana jest w trakcie inicjalizacji strony i należy ją dodać do pliku nazwastrony.aspx.cs jeżeli chcemy z niej skorzystać. 5