Wyklad TI 8


Technologie internetowe
Wykład 8
Ujednolicenie wyglądu serwisu
Tematy (Theme)
Stanowią rozszerzenie możliwości
stylów kaskadowych
Pozwalają na formatowanie znaczników
HTML oraz kontrolek ASP.NET
Pozwalają oddzielić dane formatujące od
kodu stron
1
Podkatalog tematów
Główny katalog
serwisu
Katalog
przechowujący
wszystkie tematy
Katalog
przechowujący
składowe tematu
Dołączenie tematu do strony
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Theme="TematWiosna" %>


Wiosna




Wiosna




2
Style CSS w temacie
tekst.css
body { background-color:Green }
* {color:Red}
Przeglądarka

<br>Wiosna <br>






Wiosna




 Skórki w temacie
Przyciski.skin


<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" Theme="TematWiosna" %>


Wiosna






`
Hello




Przeglądarka



Hello
3
Rozróżnienie kontrolek przez SkinID
Każda kontrolka wizualna posiada właściwość SkinID
SkinID jest opowienikiem klasy w stylach CSS
<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" Theme="TematWiosna" %>


Wiosna








Hello




Przyciski.skin



Odwołania do grafiki w tematach
Przyciski.skin

Strona.aspx

Przeglądarka

Przyciski.skin

Strona.aspx

Przeglądarka

4
Pierwszeństwo wartości w tematach
Temat1: Kontrolki.skin



Tematy,aspx
<%@ Page Language="C#" StylesheetTheme="Temat1" Theme="Temat2" %>


Tematy













Temat1: Kontrolki.skin

Strony MasterPage
Definiują schemat wyglądu serwisu
Samodzielnie nie mogą być wyświetlane
Poprzez wydzielenie części wspólnej ułatwiają
konserwację serwisu
Korzystają z nich i wypełniają je treścią strony
Content.
Pozwalają odtworzyć funkcjonalność ramek po stronie
klienta
Ich kod i wygląd przechowywany jest w plikach z
rozszerzeniem .master i .master.cs
5
Tworzenie strony Content
Aączenie treści
IP.master
<%@ Master Language="C#" CodeFile="IP.master.cs" Inherits="IP" %>

Informatyka przemysłówa







Informatyka Przemysłowa




Zawartość srony.



Strona serwisu Informatyka Przemysłowa





Definicja.aspx
<%@ Page Language="C#" MasterPageFile="~/IP.master" CodeFile="Definicja.aspx.cs" Inherits="Definicja" %>

Informatyka Przemysłowa to dziedzina obejmująca wiedzę z zakresu informatyki
i technologii produkcji.

6
Aączenie treści
Przeglądarka

<br>Informatyka przemysłówa<br>



value="/wEPDwULLTEwMDUyNjYzMjhkZBF42KCNNkz8zLPw9F9p41EGbh85" />






Informatyka Przemysłowa



Informatyka Przemysłowa to dziedzina obejmująca wiedzę z zakresu informatyki
i technologii produkcji.

Strona serwisu Informatyka Przemysłowa




Zagnieżdżanie stron MasterPage
7
Zagnieżdżanie stron MasterPage
IP.master IP_ogolne.master
<%@ Master Language="C#" CodeFile="IP.master.cs" Inherits="IP" %>
<%@ Master Language="C#" MasterPageFile="~/IP.master" %>

Informatyka przemysłówa
Runat="Server">












Informacje
ogólne


Informatyka Przemysłowa











Definicja.aspx
<%@ Page Language="C#" MasterPageFile="~/IP_ogolne.master" %>

Informatyka Przemysłowa to dziedzina obejmująca wiedzę z zakresu informatyki
i technologii produkcji.

Modyfikacja właściwości kontrolek MasterPage
Strona Master i Content to oddzielne
obiekty i klasy
Nie ma możliwości bezpośredniego
odwołania się do składowych strony
MasterPage ze strony Content
Właściwość Master strony Content
udostępnia metodę FindControl
pozwalającą uzyskać taki dostęp
8
Modyfikacja właściwości kontrolek MasterPage
IP.master
<%@ Master Language="C#" %>


Informatyka Przemysła







Strona.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/IP.master" %>




Text="Przywitaj" />

Kontrolki użytkownika UserControl
Pozwalają kilkakrotnie na stronie lub stronach
wykorzystać tą samą funkcjonalność
Ułatwiają konserwację serwisu.
Stanowią odpowiednik samodzielnej podstrony
Ich kod i wygląd jest kodowany w plikach .ascx
i .ascx.cs
UserControl muszą być rejestrowane na
strona, na których będą użyte
Nie mogą być wyświetlane samodzielnie
9
Kontrolki użytkownika UserControl
<%@ Control Language="C#" AutoEventWireup="true"%>
Kontrolka.ascx



<%@ Page Language="C#" %>
<%@ Register src="Kalendarz.ascx" tagname="Kalendarz" tagprefix="moje" %>


Kontrolki












Strona.aspx

Modyfikacja właściwości kontrolek UserControl
Strona i kontrolka UserControl to
oddzielne obiekty i klasy
Nie ma możliwości bezpośredniego
odwołania się do składowych kontrolki
ze strony zawierającej
Metoda FindControl pozwala uzyskać
taki dostęp
10
Modyfikacja właściwości kontrolek UserControl
<%@ Control Language="C#" AutoEventWireup="true"%>
Kontrolka.ascx



<%@ Page Language="C#" %>
Strona.aspx
<%@ Register src="Kalendarz.ascx" tagname="Kalendarz" tagprefix="moje" %>









Rendering kontrolek UserControl
Ponieważ UserKontrol może zostać użyta wielokrotnie na stronie, to identyfikatory jej
kontrolek składowych przestały być niepowtarzalne po stronie klienckiej. Dlatego atrybuty
name i id są uzupełniane o rozróżniające przedrostki.
<%@ Control Language="C#" AutoEventWireup="true"%>



<%@ Page Language="C#" %>
<%@ Register src="Kalendarz.ascx" tagname="Kalendarz" tagprefix="moje" %>


Kontrolki












Strona.aspx

Przeglądarka







11
Rendering stron MasterPage
<%@ Master Language="C#" %>
Firma.master

Firma












<%@ Page Language="C#" MasterPageFile="~/Firma.master" Title="Untitled Page" %>


Strona.aspx

Przeglądarka



Identyfikatory po stronie klienta
Kontrolka.ascx

Przeglądarka

btnData.UniqueID btnData.ClientID
12
Kontrolki WebControl
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MojeKontrolki
{
[ToolboxData("<{0}:Kalendarz runat=server>")]
public class Kalendarz : WebControl
{
protected override void RenderContents(HtmlTextWriter output)
{
if (Context != null)
{
if (Context.Request.Form[this.UniqueID + "$btnData"] != null) output.Write("" + DateTime.Now.ToLongDateString() + "");
output.Write("");
}
<%@ Page Language="C#" %>
else output.Write("[Kalendarz]");
<%@ Register namespace="MojeKontrolki" tagprefix="moje" %>
}
}

}

Kontrolki









16 kwietnia 2010


Biblioteka kontrolek
<%@ Page Language="C#" %>
<%@ Register namespace="MojeKontrolki" tagprefix="moje" Assembly="MojeKontrolki" %>


Untitled Page









13
Kontrolki CompositeControl
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MojeKontrolki
{
[ToolboxData("<{0}:Kalendarz runat=server>")]
public class Kalendarz : CompositeControl
{
Label lblInfo;
Button btnData;
private void btnData_Click(object sender, EventArgs e)
{
lblInfo.Text = DateTime.Now.ToLongDateString();
}
protected override void CreateChildControls()
{
lblInfo = new Label();
Controls.Add(lblInfo);
btnData = new Button();
btnData.Text = "Data";
btnData.Click += new EventHandler(btnData_Click);
Controls.Add(btnData);
}
}
}
16 kwietnia 2010
Porównanie typów kontrolek
" Kontrolka UserControl:
" Tworzona techniką  ciągnij i upuść
" Wykorzystuje kontrolki serwerowe i HTML
" Programowanie oparte na zdarzeniach
" Jeden plik .ascx opisuje jedną kontrolkę
" Jawny kod zródłowy kontrolki
" W każdym serwisie WWW jedna kopia zródeł kontrolki
" Kontrolka WebControl:
" Tworzona całkowicie w kodzie
" Wykorzystuje tylko HTML
" Programowanie oparte o przetwarzanie danych formularza
" Możliwość kompilacji do pliku DLL
" Jeden plik DLL może zawierać wiele kontrolek
" Jedna kopia biblioteki DLL może być wykorzystana w wielu serwisach
" Kontrolka CompositeControl:
" Tworzona całkowicie w kodzie
" Wykorzystuje kontrolki serwerowe i HTML
" Programowanie oparte na zdarzeniach
" Możliwość kompilacji do pliku DLL
" Jeden plik DLL może zawierać wiele kontrolek
" Jedna kopia biblioteki DLL może być wykorzystana w wielu serwisach
14
Plik konfiguracyjny web.config
Plik xml przechowujący ustawienia konfiguracyjne
obowiązujące dla całego serwisu lub jego części.
web.config














Priorytet ustawień konfiguracyjnych
Theme
Strona.aspx Web.Config Wynik
Temat1 - Temat1
Temat1 Temat2 Tamat1
- Temat2 Temat2
- - -
15
Odwołanie do pliku web.config z poziomu kodu
<%@ Page Language="C#" %>


Przywitanie




Text="Witaj" />


web.config












Hierarchia plików konfiguracyjnych
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
machine.config
1. Konfiguracja wszystkich aplikacji .NET komputera
web.config
2. Konfiguracja wszystkich aplikacji webowych komputera
4. Konfiguracja części Użytkownika
3. Konfiguracja całego serwisu Test
Konfiguracja bardziej lokalna ma pierwszeństwo przed ogólniejszą !
16
Nawigacja w serwisie ASP.NET
Informacje o strukturze nawigacyjne
serwisu zwykle przechowuje plik
Web.sitemap
Za część wizualną nawigacji serwisu
odpowiadają kontrolki SiteMapPath,
Menu, TreeView i SiteMapDataSource
Kontrolki nawigacyjne stanowią zwykle
składową MasterPage
Dodatkowy opis
możliwy do
Plik Web.sitemap
odczytania z
poziomu kodu
Adres
Web.sitemap
strony








Tytuł wyświetlany

przez kontrolki
nawigacyjne
Strona główna
O autorze
Hobby
Muzyka Sport
17
Kontrolki TreeView i SiteMapDataSource
Kontrolka SiteMapDataSource pobiera dane
z pliku sitemap i przekazuje do kontrolek wizualnych.



Ograniczenie drzewa nawigacji










StartingNodeUrl="~/Hobby.aspx" />

Właściwość StartingNodeUrl pozwala wydzielić jedną z gałęzi
drzewa nawigacji dostarczanego do kontrolek wizualnych.
18
Kontrolka Menu
Kontrolka wyświetla drzewo nawigacji w postaci dynamicznie rozwijanego menu.


Kontrolka SiteMapPath
Kontrolka wyświetla aktualne położenie na drzewie nawigacji i pozwala
wrócić do węzłów nadrzędnych.
Uwaga ! Kontrolka nie korzysta z kontrolki SiteMapDataSource.

19
Drzewo nawigacji z poziomu kodu
" Właściwość obiektu Page  SiteMap pozwala z poziomu kodu uzyskiwać
informacje o strukturze nawigacji
" Właściwość SiteMap.CurrentNode udostępnia informacje o aktualnym
węzle drzewa nawigacji, w którym się obecnie znajdujemy:
" Title - tytuł
" Url - adres
" Description  opis
" ParentNode  węzeł nadrzędny
" ChildNodes  kolekcja węzłów podrzędnych


Strona główna
O autorze
Hobby
hlRodzic.Text = SiteMap.CurrentNode.ParentNode.Title;
hlRodzic.NavigateUrl = SiteMap.CurrentNode.ParentNode.Url;
Muzyka Sport
foreach (SiteMapNode node in SiteMap.CurrentNode.ChildNodes)
lstDzieci.Items.Add(new ListItem(node.Title, node.Url));
20


Wyszukiwarka

Podobne podstrony:
Wyklad TI 1
Wyklad TI 9
Wyklad TI
Wyklad TI 6
Wyklad TI
PREZENTACJA wyklad TI 2
Wyklad TI
PREZENTACJA wyklad TI 4
Wyklad TI 4
Wyklad TI 3
PREZENTACJA wyklad TI 1
Wyklad TI 7
Wyklad TI
Wyklad TI 2
Wyklad TI 5
Wykład TI 05 12 11 2
TI Wykład 08
TI Wykład 03
wyklad Patryka wskaźniki TI 18 12 11

więcej podobnych podstron