Professional Documents
Culture Documents
Tworzenie witryn
internetowych z wykorzystaniem
C# i Visual Basica
Autor: Cristian Darie, Zak Ruvalcaba
Tumaczenie: Ireneusz Jakbik, Maciej Jezierski
ISBN: 978-83-246-0999-4
Tytu oryginau: Build Your Own ASP.NET 2.0
Web Site Using C# & VB
Format: B5, stron: okoo 608
Przykady na ftp: 1991 kB
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treci
O autorach .................................................................................................................. 11
Przedmowa ................................................................................................................. 13
Rozdzia 1. Wprowadzenie do platformy ASP.NET i .NET ....................................................... 17
Czym jest ASP.NET? ..................................................................................................................17
Instalacja niezbdnego oprogramowania .....................................................................................20
Instalowanie serwera stron internetowych .............................................................................21
Instalacja .NET Framework oraz SDK ..................................................................................24
Konfiguracja serwera internetowego .....................................................................................25
Instalacja SQL Server Express Edition ..................................................................................34
Instalacja SQL Server Management Studio Express .............................................................35
Instalacja Visual Web Developer 2005 .................................................................................36
Twoja pierwsza strona ASP.NET ................................................................................................38
Uzyskiwanie pomocy ..................................................................................................................42
Podsumowanie .............................................................................................................................43
Spis treci
7
Bdy uytkownika ..............................................................................................................197
Lokalna obsuga wyjtkw ..................................................................................................198
Podsumowanie ...........................................................................................................................202
Spis treci
9
Powizanie kontrolki GridView z obiektem klasy SqlDataSource ......................................417
Powizanie kontrolki DetailsView z obiektem klasy SqlDataSource ..................................423
Wywietlanie list w kontrolce DetailsView .........................................................................433
Wicej o obiektach klasy SqlDataSource ............................................................................435
Praca ze zbiorami danych i tabelami danych .............................................................................436
Z czego skada si zbir danych? ........................................................................................439
Powizanie obiektw klasy DataSet z kontrolkami .............................................................440
Implementacja stronicowania ..............................................................................................445
Przechowywanie zbiorw danych w zbiorze ViewState .....................................................446
Implementacja sortowania ...................................................................................................449
Filtrowanie danych ..............................................................................................................459
Aktualizacja bazy danych na podstawie zmodyfikowanego zbioru klasy DataSet ....................460
Podsumowanie ...........................................................................................................................464
Dodatek A
Rozdzia 4.
Jeli ta lista troch Ci przestraszya nie przejmuj si. Wszystko to jest znacznie atwiejsze
do zrozumienia, ni by si wydawao.
98
Formatki internetowe
Jak wiesz, podczas uczenia si nowej technologii zawsze trzeba opanowa now terminologi.
Jednak w ASP.NET nawet najprostsze terminy uywane do opisu podstaw stron internetowych
zostay zmienione, eby odzwierciedli procesy, ktre w nich zachodz.
Terminem uywanym do opisania strony internetowej ASP.NET jest formatka internetowa
(ang. web form). Jest to gwny obiekt w programowaniu ASP.NET. Spotkae si ju z formatkami internetowymi to pliki .aspx, z ktrymi dotd pracowae w tej ksice. Na
pierwszy rzut oka formatki internetowe wygldaj jak strony HTML, ale poza statyczn zawartoci HTML znajduj si w nich rwnie elementy prezentacyjne ASP.NET oraz kod wykonywany po stronie serwera, ktry generuje dynamiczn zawarto i wykonuje dane funkcje.
Kada formatka internetowa posiada znacznik <form runat="server">, zawierajcy
elementy specyficzne dla ASP.NET, z ktrych skada si strona. Na stronie moe znajdowa
si tylko jedna formatka. Podstawowa struktura formatki internetowej znajduje si poniej:
<html>
<head>\
<script runat="server" language="jzyk programowania">
...tu znajduje si kod
</script>
</head>
<body>
<form runat="server">
...tu znajduj si elementy interfejsu uytkownika...
</form>
</body>
</html>
99
Pomidzy powyszymi typami kontrolek s znaczne rnice techniczne, jednak czy je atwo
integracji i moliwo wielokrotnego wykorzystywania w witrynach internetowych. Przyjrzyjmy si wszystkim powyszym typom kontrolek po kolei.
Powizany znacznik
HtmlAnchor
<a runat="server">
HtmlButton
<button runat="server">
HtmlForm
<form runat="server">
HtmlImage
<img runat="server">
HtmlInputButton
HtmlInputCheckBox
HtmlInputFile
HtmlInputHidden
HtmlInputImage
HtmlInputRadioBut
ton
HtmlInputText
HtmlSelect
<select runat="server">
HtmlTable
<table runat="server">
HtmlTableRow
<tr runat="server">
HtmlTableCell
<td runat="server">
<th runat="server">
HtmlTextArea
<textarea runat="server">
HtmlGenericContro
l
<span runat="server">
<div runat="server">
100
101
<option>ColdFusion</option>
</select>
</p>
<!-- Wywietl .NET opcje opinii o net -->
<p>
Czy wci lubisz .NET?<br />
<select id="likeDotNet" runat="server">
<option>Tak</option>
<option>Nie</option>
</select>
</p>
<!-- Wywietl przycisk potwierdzajcy -->
<p>
<button id="confirmButton" OnServerClick="Click"
runat="server">Zatwierd</button>
</p>
<!-- Etykieta potwierdzenia -->
<p>
<asp:Label id="feedbackLabel" runat="server" />
</p>
</form>
</body>
</html>
102
C#
103
Konkludujc, praca z kontrolkami HTML serwera jest naprawd prosta. Wszystko, czego potrzebujesz, to przypisanie kadej kontrolce identyfikatora oraz dodanie atrybutu runat="server". Nastpnie moesz w prosty sposb odwoywa si i przeprowadza na nich
operacje wykorzystujc kod VB lub C# po stronie serwera.
104
Podobnie, eby doda pole tekstowe do formatki, uywamy kontrolki internetowej serwera
TextBox. Ponownie moemy odczyta bd zapisa tekst za pomoc waciwoci Text:
C#
username = usernameTextBox.Text;
Mimo e stosujemy kontrolk TextBox, ASP.NET tak naprawd uywa elementu input, jednak nie musimy si ju przejmowa jego szczegami. Dziki kontrolkom internetowym
serwera Microsoft po prostu ponownie wymyli HTML.
W przeciwiestwie do kontrolek HTML serwera, kontrolki internetowe serwera nie przekadaj
si bezporednio na tworzone przez nie elementy HTML. Na przykad, do wygenerowania
elementu select moemy uy jednej z dwch kontrolek internetowych serwera: DropDownList lub ListBox.
Kontrolki internetowe serwera stosuj ten sam podstawowy wzr co znaczniki HTML, ale
nazwa znacznika jest poprzedzona przez asp: i zapisana w notacji jzyka Pascal. Notacja jzyka Pascal polega na zapisywaniu pierwszych liter kadego wyrazu wielk liter (np. TextBox). Identyfikatory obiektw s zazwyczaj zapisywane za pomoc notacji wielbdziej, w
ktrej wszystkie pierwsze litery poszczeglnych wyrazw, z wyjtkiem pierwszego, s zapisywane wielk liter (np. usernameTextBox).
Rozpatrzmy poniszy element HTML input, ktry tworzy pole tekstowe:
<input type="text" name="usernameTextBox" size="30" />
Odpowiadajc mu kontrolk internetow serwera jest kontrolka TextBox, ktra wyglda nastpujco:
<asp:TextBox id="usernameTextBox" runat="server" Colums="30">
</asp:textBox>
Pamitaj o tym, e w przeciwiestwie do zwykych elementw HTML, ktre mgby wykorzysta w formatkach internetowych, kontrolki internetowe serwera s najpierw przetwarzane
przez ASP.NET i zamieniane na HTML. Efektem ubocznym tego podejcia jest to, e musisz
pamita o tym, eby zawsze wstawia znaczniki zamykajce (</asp:TextBox> w powyszym kodzie). Parsery HTML-a w przegldarkach nie s rygorystyczne co do poprawnoci
kodu, ale ASP.NET jest. Pamitaj o tym, e jeli niczego nie ma pomidzy znacznikami otwierajcymi i zamykajcymi kontrolk internetow serwera, moesz uy skrtowej skadni
(/>). Tak wic kontrolka TextBox mogaby wyglda nastpujco:
<asp:TextBox id="usernameTextBox" runat="server" Colums="30" />
105
Internetowych kontrolek serwera jest wicej ni kontrolek HTML. Niektre z nich oferuj
zaawansowane funkcje, ktrych po prostu nie mona zrealizowa za pomoc samego HTML-a,
a inne z kolei tworz dosy zoony HTML za Ciebie. Z wieloma kontrolkami internetowymi
serwera oraz sposobem ich dziaania zapoznamy si w kolejnych rozdziaach.
Wicej o kontrolkach internetowych serwera, wczajc w to waciwoci metody i zdarzenia,
dowiesz si w dodatku A.
Label
Najprostszym sposobem wywietlenia statycznego tekstu na stronie jest po prostu wpisanie
go bezporednio do sekcji body strony bez adnych znacznikw. Jeli jednak chcesz zmienia
wywietlany na stronie tekst za pomoc kodu ASP.NET, moesz umieci go wewntrz
kontrolki Label. Poniej znajduje si typowy przykad:
<asp:Label id="messageLabel" Text="" runat="server" />
Poniszy kod ustawia waciwo Text kontrolki Label, tak eby wywietlaa tekst Witaj
wiecie!:
Visual Basic
Public Sub Page_Load()
messageLabel.Text = "Witaj wiecie!"
End Sub
106
W kodzie funkcji Page_Load moemy zobaczy, e kiedy strona po raz pierwszy jest wczytywana, waciwo Text kontrolki Label z identyfikatorem message zostanie ustawiona
na Witaj wiecie.
Literal
Jest to najprawdopodobniej najprostsza kontrolka w ASP.NET. Jeli ustawisz jej waciwo
Text, spowoduje to po prostu wstawienie tekstu do wynikowego kodu HTML bez adnych
zmian. W przeciwiestwie do Label, ktra ma podobna funkcjonalno, Literal nie opakowuje tekstu w znaczniki <span> umoliwiajce ustawienie informacji o stylu.
TextBox
Kontrolka TextBox jest wykorzystywana do tworzenia pola tekstowego, w ktrym uytkownik moe zapisywa bd z ktrego moe czyta zwyky tekst. Waciwo TextMode
umoliwia ustawienie sposobu wywietlania tekstu, tak eby znajdowa si w jednej linijce, w
107
wielu linijkach lub by ukrywany podczas wprowadzania (na przykad tak jak w polach hase
HTML). Poniszy kod demonstruje, w jaki sposb moglibymy uy jej w prostej stronie logowania:
<p>
Uytkownik: <asp:TextBox id="userTextBox" TextMode="SingleLine"
Columns="30" runat="server" />
</p>
<p>
Haso: <asp:TextBox id="passwordTextBox"
TextMode="Password" Columns="30" runat="server" />
</p>
<p>
Komentarz: <asp:TextBox id="commentsTextBox"
TextMode="MultiLine" Columns="30" rows="10"
runat="server" />
</p>
W kadej z powyszych instancji TextBox atrybut TextMode ustawia rodzaj pola tekstowego, ktre ma zosta stworzone.
HiddenField
HiddenField jest prost kontrolk, ktra tworzy element input z atrybutem type rwnym
hidden. Moemy ustawi jej jedyn wan waciwo: Value.
Button
Domylnie kontrolka Button tworzy element input z atrybutem type o wartoci submit.
Po naciniciu przycisku formularz, ktry go zawiera, jest wysyany do serwera w celu przetworzenia i wywoywane s zdarzenia Click oraz Command.
Poniszy kod wywietla kontrolk Button i Label:
<asp:Button id="submitButton" Text="Wylij" runat="server"
OnClick="WriteText" />
<aps:Label id="messageLabel" runat="server" />
C#
public void WriteText(Object s, EventArgs e)
{
messageLabel.Text = "Witaj swiecie!";
}
108
ImageButton
Kontrolka ImageButton jest podobna do kontrolki Button, ale zamiast z systemowego przycisku korzysta z podanego przez nas obrazka. Spjrz na przykad:
<asp:ImageButton id="myImgButton" ImageUrl="myButton.gif
runat="server" OnClick="WriteText" />
<asp:Label id="messageLabel" runat="server" />
Zdarzenie Click kontrolki ImageButton odbiera koordynaty punktu, w ktrym zosta kliknity obrazek:
Visual Basic
Public WriteText(s As Object, e As ImageClickEventArgs)
messsageLabel.Text = "Koordynaty: " & e.X & "," & e.Y
End Sub
C#
public void WriteText(Object s, ImageClickEventArgs e)
{
messageLabel.Text = "Koordynaty: " + e.X + "," + e.Yl
}
LinkButton
Kontrolka LinkButton tworzy hipercze, po ktrego klikniciu wywoywane jest zdarzenie Click. Z punktu widzenia kodu ASP.NET, kontrolki LinkButton mog by traktowane w
wikszoci przypadkw jak przyciski.
<asp:LinkButton id="myLinkButton" Text="Nacinij tu"
runat="server" />
HyperLink
Kontrolka HyperLink tworzy na stronie hipercze o adresie ustalanym przez waciwo
NavigateUrl. W przeciwiestwie do kontrolki LinkButton udostpniajcej funkcjonalnoci, takie jak zdarzenia Click czy sprawdzanie poprawnoci, kontrolki HyperLink s przeznaczone do nawigacji z jednej strony do innej.
<asp:HyperLink id="myLink" NavigateUrl="http://www.sitepoint.com/"
ImageUrl="splogo.gif" runat="server">SitePoint</asp:HyperLink>
109
Jeli jest podany, atrybut ImageUrl powoduje, e kontrolka wywietla okrelony obrazek.
W takim przypadku tekst podany wewntrz kontrolki bdzie funkcjonowa jako alternatywny
tekst obrazka.
CheckBox
Kontrolk CheckBox moesz wykorzysta do wywietlenia pola wyboru, ktre ma tylko
dwa stany zaznaczone lub niezaznaczone.
<asp:CheckBox id="questionCheck" Text="Tak, lubi .NET!"
Checked="True" runat="server" />
RadioButton
Kontrolka RadioButton jest podobna do CheckBox z tym wyjtkiem, e kontrolki tego typu mog by grupowane razem, dziki czemu bd reprezentowa zbir opcji, z ktrych tylko jedna moe zosta wybrana. Do grupowania suy waciwo GroupName.
<asp:RadioButton id="warszawa" GropupName="City" Text="Warszawa"
runat="server" /><.br />
<asp:RadioButton id="katowice" GropupName="City" Text="Katowice"
runat="server" /><.br />
<asp:RadioButton id="kielce" GropupName="City" Text="Kielce"
runat="server" /><.br />
<asp:RadioButton id="krakow" GropupName="City" Text="Krakw"
runat="server" /><.br />
Podobnie jak w kontrolce CheckBox, gwnym zdarzeniem zwizanym z kontrolkami RadioButton jest CheckChanged, ktre moe zosta obsuone przez atrybut OnCheckChanged.
Inn kontrolk, ktr moemy wykorzysta do wywietlenia pl wielokrotnego wyboru, jest
RadioButtonList, opisana w dalszej czci rozdziau.
Image
Kontrolka Image tworzy obrazek, ktry moe by zmieniany dynamicznie z poziomu kodu.
Odpowiada ona znacznikowi <img> w HTML-u. Oto przykad:
<asp:Image id="myImage" ImageUrl="mygif.gif" runat="server"
AlternateText="opis" />
ImageMap
Kontrolka ImageMap generuje HTML wywietlajcy obrazki posiadajce klikalne obszary,
nazywane aktywnymi miejscami. Kade z takich miejsc inaczej reaguje na kliknicie przez
uytkownika.
110
Inactive
brak
Navigate
NotSet
PostBack
Dokumentacja Microsoft .NET Framework 2.0 SDK dla klasy ImageMap zawiera szczegowe
przykady korzystania z wartoci HotSpotMode.
PlaceHolder
Kontrolka PlaceHolder umoliwia dynamiczne za pomoc kodu dodawanie elementw w okrelonych miejscach na stronie:
<asp:PlaceHolder id="placeHolder" runat="server"
/>
111
C#
public void Page_Load()
{
HtmlButton myButton = new HtmlButton();
myButton.InnerText = "Nowy przycisk";
placeHolder.Controls.Add(myButton);
}
Panel
Kontrolka Panel dziaa podobnie do elementu div w HTML, poniewa umoliwia traktowanie zawartych w niej elementw jako grupy i wykonywanie na nich zbiorczych operacji. Na
przykad panel mona wywietla lub chowa za pomoc zdarzenia Click kontrolki:
<asp:Panel id="myPanel" runat="server">
<p>Uytkownik: <asp:TextBox id="usernameTextBox" Colums="30"
runat="server" /></p>
<p>Haso: <asp:TextBox id="passwordTextBox"
TextMode="Password" Colums="30" runat="server" />
</p>
</asp:Panel>
<asp:Button id="hideButton" Text="Ukryj panel" OnClick="HidePanel"
runat="server" />
Powyszy kod umieszcza w kontrolce Panel dwie kontrolki TextBox. Kontrolka Button
znajduje si poza kontrolk Panel. Procedura HidePanel bdzie sterowaa widocznoci
kontrolki Panel poprzez ustawianie jej waciwoci Visible na False:
Visual Basic
Public Sub HidePanel(s As Object, e As EventArgs)
myPanel.Visible = False
End Sub
C#
public void HidePanel(Object s, EventArgs e)
{
myPanel.Visible = false;
}
Kontrolki List
W tym punkcie zapoznamy si z kontrolkami ASP.NET wywietlajcymi proste listy elementw: ListBox, DropDownList, CheckBoxList, RadioButtonList oraz BulletedList.
112
DropDownList
Kontrolka DropDownList jest podobna do elementu HTML select. Umoliwia ona wybr
jednego elementu z listy za pomoc rozwijanego menu.
<asp:DropDownList id="ddlFavColor" runat="server">
<asp:ListItem Text="Czerwony" value="red" />
<asp:ListItem Text="Zielony" value="green" />
<asp:ListItem Text="Niebieski" value="blue" />
</asp:DropDownList>
Najbardziej przydatnym zdarzeniem udostpnianym przez t kontrolk jest SelectedIndexChanged. Zdarzenie to jest udostpniane przez inne kontrolki list, takie jak CheckBoxList
i RadioButtonList, i umoliwia programicie atw komunikacj z kontrolk. Kontrolki te
mog by rwnie powizane baz danych, dziki czemu mona do rozwijanego menu wstawia dynamiczn zawarto.
ListBox
Kontrolka ListBox odpowiada elementowi HTML select z ustawionym atrybutem multiple lub size (size musi mie warto 2 lub wiksz). Jeli ustawisz atrybut SelectionMode na multiple, uytkownik bdzie mg wybra wicej ni jeden element z listy,
tak jak w poniszym przykadzie:
<asp:ListBox id="listTechnologies" runat="server"
SelectionMode="Multiple">
<asp:ListItem Text="ASP.NET" Value="aspnet" />
<asp:ListItem Text="JSP" Value="jsp" />
<asp:ListItem Text="PHP" Value="php" />
<asp:ListItem Text="CGI" Value="cgi" />
<asp:ListItem Text="ColdFusion" Value="cf" />
</asp:ListBox>
RadioButtonList
Podobnie jak kontrolka RadioButton, kontrolka RadioButtonList reprezentuje pola wielokrotnego wyboru, z t rnic, e ta druga reprezentuje ich list i uywa bardziej zwizej
skadni. Oto przykad:
<asp:RadioButton id="favouriteColor" runat="server">
<asp:ListItem Text="Czerwony" Value="red" />
<asp:ListItem Text="Zielony" Value="green" />
<asp:ListItem Text="Niebieski" Value="blue" />
</asp:RadioButtonList>\
CheckBoxList
Jak si pewnie domylasz, CheckBoxList reprezentuje grup pl wyboru. Jest odpowiednikiem uycia kilku kontrolek CheckBox obok siebie:
<asp:CheckBoxList id="favoutiteFood" runat="server">
<asp:ListItem Text="Pizza" Value="pizza" />
<asp:ListItem Text="Tacos" Value="tacos" />
<asp:ListItem Text="Pasta" Value="pasta" />
<.asp:CheckListBox>
113
BulletedList
Kontrolka BulletedList wywietla wypunktowane bd ponumerowane listy za pomoc
znacznikw <ul> (lista wypunktowana) lub <ol> (lista numerowana). W przeciwiestwie do
innych kontrolek list, BulletedList nie umoliwia wyboru elementw i w zwizku z tym nie
obsuguje zdarzenia SelectedIndexChanged.
Pierwsz waciwoci, ktr bdziesz chcia ustawi, jest DisplayMode. Moesz jej przypisa warto Text (domylna) lub HyperLink (elementy bd wywietlane jako cza). Jeli
DisplayMode ma warto HyperLink, moesz uy zdarzenia Click do reagowania na
kliknicie jednego z elementw przez uytkownika.
Inn wan waciwoci jest BulletStyle. Okrela ona styl wypunktowania. Moe mie nastpujce wartoci: Numbered (1, 2, 3, ), LowerAlpha (a, b, c, ), UpperAlpha (A, B, C,
), LowerRoman (i, ii, iii, ), UpperRoman (I, II, III, ), Circle, Disc, Square i CustomImage. Jeli styl zostanie ustawiony na CustomImage, bdziesz musia ustawi take
waciwo BulletImageUrl okrelajc obrazek, ktry bdzie uywany w wypunktowaniu.
Jeli styl jest jedn z list numerowanych, moesz ustawi waciwo FirstBulletNumber,
ktra okrela pocztkow liczb lub liter numerowania.
Zaawansowane kontrolki
Kontrolki te s zaawansowane w nastpujcych znaczeniach: sposobu, w jaki si ich uywa,
generowanego przez nie kodu HTML oraz pracy wykonywanej za Ciebie. Niektre z tych
kontrolek nie s dostpne w starszych wersjach ASP.NET. Wiele z nich poznamy w dalszej
czci ksiki (w tym rozdziale opiszemy tylko niektre).
Calendar
Calendar jest wietnym przykadem tego, e kontrolek ASP.NET mona wielokrotnie uywa. Generuje ona intuicyjny kalendarz, ktry uytkownik moe klika i wybiera dni, tygodnie, miesice itd.
Kontrolka Calendar wymaga tylko niewielkiego dostosowania. Mona j stworzy na stronie w nastpujcy sposb:
Plik: Calendar.aspx (fragment)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test kalendarza</title>
</head>
<body>
<form runat="server">
<asp:Calendar id="myCalendar" runat="server" />
</form>
</body>
</html>
114
Jeli zapiszesz t stron w katalogu Learning, a nastpnie j wczytasz, wynik bdzie podobny
do rysunku 4.4.
Rysunek 4.4.
Wywietlanie
domylnego
kalendarza
115
Opis
DayNameFormat
FirstDayOfWeek
NextPrevFormat
SelectedDate
SelectionMode
Ta waciwo okrela, czy mona wybiera dni, tygodnie lub miesice. Moliwymi
wartociami s: Day, DayWeek, DayWeekMonth oraz None, a domyln jest Day. Jeli
wybrana jest warto Day, uytkownik moe wybra tylko dzie; jeli DayWeek,
uytkownik moe wybra dzie i tydzie, itd.
SelectedMonthT
ext
SelectedWeekTe
xt
ShowDayHeader
ShowGridLines
ShowNextPrevMo
nth
ShowTitle
TitleFormat
TodaysDate
VisibleDate
C#
116
Zapisz swoj prac i przetestuj w przegldarce. Sprbuj wybra dzie, tydzie lub miesic.
Wybrane daty zostan podwietlone, tak jak na rysunku 4.5.
Rysunek 4.5.
Korzystanie
z kontrolki Calendar
AdRotator
Kontrolka AdRotator umoliwia losowe wywietlanie listy banerw reklamowych w aplikacji
internetowej. Jest jednak czym wicej ni tylko substytutem stworzenia skryptu losujcego
od zera. Poniewa kontrolka AdRotator pobiera zawarto z pliku XML, administracja i aktualizacja plikw z banerami reklamowymi oraz zmiana ich waciwoci jest bardzo prosta. Ponadto plik XML umoliwia sterowanie rysunkiem banera, czem, adresem docelowym cza
oraz czstotliwoci pojawiania si banera w stosunku do innych banerw.
Korzyci wynikajce z korzystania z tej kontrolki nie kocz si tylko na tym. Poniewa
wikszo waciwoci kontrolki AddRorator znajduje si w pliku XML, jeli chcesz, mo-
117
esz je wspuytkowa w internecie, dziki czemu inni sprzedawcy lub partnerzy Twojej
firmy mog korzysta z Twoich banerw reklamowych na swoich stronach.
Podstawy XML-a
W swojej istocie XML jest po prostu formatem tekstowym do przesyania lub przechowywania danych. Nie zawiera on informacji, w jaki sposb dane powinny by prezentowane. XML jest bardzo prosty dla pocztkujcych, poniewa bardzo przypomina HTML: obydwa zawieraj du
liczb znacznikw wewntrz pojedynczych ostrych nawiasw (< oraz >). Najwiksz rnic pomidzy XML-em a HTML-em jest to, e XML nie ma staych znacznikw i umoliwia tworzenie wasnych do opisu danych, ktre chcemy reprezentowa.
Przyjrzyj si poniszemu elementowi HTML:
<p>Gwiezdne Wojny Epizod I: Mroczne Widmo</p>
W tym przykadzie zawarto pomidzy znacznikami jest opisana jako paragraf. Jest to wystarczajce, jeli wszystkim, co chcemy zrobi, jest wywietlenie tekstu Gwiezdne Wojny Epizod
I: Mroczne Widmo na stronie internetowej. Co bdzie jednak, gdybymy chcieli mie dostp do
tych sw jak do danych?
Podobnie jak w przypadku HTML-a, celem XML-a jest opisanie zawartoci dokumentu. Jednak w
przeciwiestwie do HTML-a, XML nie opisuje, w jaki sposb jaka zawarto ma by wywietlana opisuje on, czym jest ta zawarto. Za pomoc XML-a autor strony internetowej moe
oznaczy zawarto dokumentu, opisujc j w kategoriach jej znaczenia jako danych.
Moemy wykorzysta XML-a do oznaczenia sw Gwiezdne Wojny Epizod I: Mroczne Widmo w
sposb, ktry lepiej odzwierciedla znaczenie tej zawartoci jako danych:
<film>
<title>Gwiezdne Wojny Epizod I: Mroczne Widmo</title>
</film>
Wybrane przez nas nazwy znacznikw najlepiej opisuj zawarto elementu. Definiujemy take w
miar potrzeb wasne nazwy atrybutw. Na przykad w powyszym przykadzie mgby zechcie rozrnia pomidzy wersj VHS i DVD czy zapisywa, jak si nazywa reyser filmu. Mona to zrobi, dodajc atrybuty i elementy w sposb pokazany poniej:
<film format="DVD">
<title>Gwiezdne Wojny Epizod I: Mroczne Widmo</title>
<director>George Lucas</director>
</film>
Jeli chcesz to przetestowa, stwrz plik o nazwie ads.xml w katalogu Learning i umie w nim
zawarto przedstawion poniej. Sprbuj stworzy wasne banery albo wykorzysta te dostarczone z kodem do ksiki.
Plik: Ads.xml (fragment)
<?xml version="1.0" encoding="Windows-1250"?>
<Advertisements>
<Ad>
<ImageUrl>workatdorknozzle.gif</ImageUrl>
<NavigateUrl>http://www.dorknozzle.com</NavigateUrl>
<TargetUrl>_blank</TargetUrl>
<AlternateText>Praca w Dorknozzle.com!</AlternateText>
<Keyword>Witryna dziau HR</Keyword>
<Impressions>2</Impressions>
118
Jak moesz zobaczy, element Advertisements jest gwnym wzem i zgodnie ze specyfikacj XML pojawia si tylko raz. Dla kadej poszczeglnej reklamy po prostu dodajemy
element potomny Ad. Na przykad powyszy plik z reklamami zawiera szczegy dwch banerw.
Jak ju prawdopodobnie zauwaye, plik .xml umoliwia okrelenie waciwoci dla kadego
banera poprzez wpisanie odpowiedniego elementu wewntrz poszczeglnych elementw Ad.
ImageUrl
119
<form runat="server">
<asp:AdRotator id="adRotator" runat="server"
AdvertisementFile="Ads.xml" />
</form>
</body>
</html>
eby zobaczy obrazki reklamowe, bdziesz musia umieci pliki workatdorknozzle.gif oraz
getthenewsletter.gif w katalogu Learning. Zapisz swoj prac i przetestuj w przegldarce.
Wynik powinien wyglda podobnie do przedstawionego na rysunku 4.6.
TreeView
Kontrolka TreeView ma ogromne moliwoci i pozwala na wywietlanie zoonej hierarchicznej struktury elementw. Zazwyczaj uywamy jej do wywietlenia struktury katalogu bd
hierarchii nawigacji, ale moe by rwnie wykorzystywana do pokazania drzewa genealogicznego, struktury organizacyjnej korporacji czy innej struktury.
TreeView moe pobiera dane z rnych rde. Rne rda danych przedstawimy w dalszej
czci ksiki. Na razie skupimy si na klasie SiteMapDataSource, zawierajcej hierar-
chiczn map witryny. Domylnie mapa ta jest wczytywana z pliku o nazwie Web.sitemap,
umieszczonego w gwnym katalogu projektu. Jest to plik XML, wygldajcy podobnie do
poniszego:
Plik: Web.sitemap
<?xml version="1.0" encoding="Windows-1250"?>
<siteMap
xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode title="Strona gwna" url="~/Default.aspx"
description="Strona gwna">
<siteMapNode title="Demo kontrolki TreeView"
url="~/TreeViewDemo.aspx"
description="Przykad kontrolki TreeView" />
120
Ograniczenia Web.sitemap
Wanym ograniczeniem, o ktrym naley pamita podczas pracy z plikami Web.sitemap, jest to,
e musz zawiera tylko jeden wze SiteMapNode bdcy bezporednim potomkiem gwnego
elementu siteMap.
W powyszym przykadzie element siteMapNode z tytuem Strona gwna jest pojedynczy.
Jeli dodalibymy obok niego (a nie wewntrz niego) kolejny element siteMapNode, plik
Web.sitemap byby nieprawidowy.
eby korzysta z tego pliku, musisz doda do strony kontrolk SiteMapDataSource oraz TreeView, ktra pobiera z niej dane:
Plik: TreeViewDemo.aspx (fragment)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Demo kontrolki TreeView</title>
</head>
<body>
<form runat="server">
<asp:SiteMapDataSource ID="mySiteMapDataSource"
runat="server" />
<asp:TreeView ID="myTreeView" runat="server"
DataSourceID="mySiteMapDataSource" />
</form>
</body>
</html>
Zauwa, e SiteMapDataSource jest kontrolk, ktra nie generuje adnego kodu HTML
na stronie. Jest wiele podobnych do niej kontrolek bdcych rdami danych szczegowo zgbimy ten temat w dalszej czci ksiki.
Po poczeniu z przykadowym plikiem Web.sitemap powysza formatka internetowa wygeneruje wynik przedstawiony na rysunku 4.7.
Jak moesz zobaczy, kontrolka TreeView wygenerowaa drzewko za nas. Mona nawet rozwija i zwija ga Strona gwna.
W wielu przypadkach nie bdziemy chcieli pokazywa gwnej gazi. Moemy j ukry,
ustawiajc waciwo ShowStartingNode kontrolki SiteMapDataSource na false.
121
Rysunek 4.7.
Prosta kontrolka
TreeView
SiteMapPath
Kontrolka SiteMapPath udostpnia funkcjonalno generujc ciek nawigacji strony.
cieka nawigacji uatwia uytkownikom orientacj, przedstawiajc w prosty sposb informacj, w jakim miejscu witryny si znajduj, oraz wywietlajc podrczne cza do rodzicielskich gazi biecej lokacji. Przykad cieki nawigacji jest przedstawiony na rysunku 4.8.
Rysunek 4.8.
cieka nawigacji
stworzona za pomoc
kontrolki SiteMapPath
Jeli uruchomisz teraz przykad, zobaczysz, e cieka nawigacji pojawi dokadnie tak jak na
rysunku 4.8.
Pamitaj o tym, e kontrolka SiteMapPath pokazuje tylko ga odpowiadajc istniejcej
stronie witryny, jeli wic nie bdzie pliku Default.aspx, gwna ga nie pokae si. Podobnie,
jeli strona, ktr wczytujesz, nie nazywaaby si TreeViewDemo.aspx, kontrolka SiteMapPath niczego nie wywietli.
122
Menu
Kontrolka Menu jest podobna do TreeView, poniewa wywietla hierarchiczne dane ze rda danych. Sposb, w jaki dziaaj obydwie kontrolki, take jest bardzo podobny. Najwaniejszymi rnicami jest ich wygld oraz to, e Menu obsuguje szablony, dziki czemu
mona j lepiej dostosowa, a take wywietla tylko dwa poziomy elementw(menu i podmenu).
MultiView
Kontrolka MultiView jest podobna do kontrolki Panel, poniewa nie generuje sama interfejsu, ale zawiera inne kontrolki. MultiView moe przechowywa wicej stron danych (nazywanych widokami) i pozwala na wywietlanie jednej z nich w danym czasie. Moesz zmieni aktywny widok (ten, ktry jest prezentowany uytkownikowi), ustawiajc warto waciwoci
ActiveViewIndex. Pierwsza strona odpowiada ActiveViewIndex o wartoci 0, druga 1,
trzecia 3, itd.
Zawarto kadego szablonu okrelana jest wewntrz potomnych elementw View. Przyjrzyj
si poniszemu fragmentowi kodu tworzcemu kontrolk Button oraz kontrolk MultiView:
Plik: MultiViewDemo.aspx (fragment)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Demo kontrolki MultiView</title>
</head>
<body>
<form runat="server">
<p>
<asp:Button id="myButton" Text="Przecz stron"
runat="server" OnClick="SwitchPage" />
</p>
<asp:MultiView ID="myMultiView" runat="server"
ActiveViewIndex="0">
<asp:View ID="firstView" runat="server">
<p>... zawarto pierwszego widoku ...</p>
</asp:View>
<asp:View ID="secondView" runat="server">
<p>... zawarto drugiego widoku ...</p>
</asp:View>
</asp:MultiView>
</form>
</body>
</html>
Jak moesz zobaczy, domyln wartoci ActiveIndex jest 0, dlatego te po pierwszym uruchomieniu powyszego kodu MultiView wywietli pierwszy szablon przedstawiony na rysunku 4.9.
Kliknicie przycisku spowoduje wywietlenie drugiego szablonu. Poniej znajduje si funkcja
obsugi SwitchPage:
123
C#
Ta prosta procedura do ustawienia AcvtiveIndex na 1, kiedy biec wartoci jest 0 i na odwrt, uywa operatora reszty dzielenia.
Kontrolka MultiView ma wiele uytecznych funkcji, dlatego te powiniene przeczyta dokumentacj, jeli bdziesz korzysta z niej w rodowisku produkcyjnym.
Wizard
Kontrolka Wizard (kreator) jest bardziej zaawansowan wersj kontrolki MultiView. Umoliwia ona wywietlanie jednej lub wicej stron za jednym razem i posiada rwnie dodatkowe
wbudowane funkcjonalnoci, takie jak przyciski nawigacyjne czy panel boczny wywietlajcy
poszczeglne kroki kreatora.
FileUpload
Kontrolka FileUpload umoliwia uytkownikom wysyanie plikw na stron. Sposobu korzystania z tej kontrolki nauczysz si w rozdziale 14.
124
125
W rozdziale 3. krtko opisalimy waciwoci, ale nie powiedzielimy, w jaki sposb stworzy
wasne waciwoci w klasie. Dotd pracowae z wieloma waciwociami wbudowanymi
w kontrolki. Na przykad widziae mnstwo przykadw kodu, w ktrym ustawiana jest waciwo Text kontrolki Label.
Poniewa kontrolka internetowa uytkownika jest klas, moe mie take metody, waciwoci
itp. Nasza kontrolka SmartBox.ascx rozszerza klas System.Web.UI.UserControl poprzez
dodanie dwch waciwoci:
LabelText jest waciwoci tylko do zapisu, umoliwiajc formatk ustawienie
przez uytkownika.
Dodajmy do skryptu strony serwera element, ktry umoliwi nam sterowanie tymi kontrolkami jedn o nazwie Text dla tekstu w polu tekstowym i jedn o nazwie LabelText dla
tekstu w etykiecie:
126
Visual Basic
C#
Podobnie jak formatki internetowe, kontrolki internetowe uytkownika mog pracowa z plikami
chowajcymi kod, ale poniewa chcemy uproci przykady, nie bdziemy ich stosowa.
Z bardziej zoonymi kontrolkami internetowymi uytkownika spotkasz si w nastpnym
rozdziale.
Kiedy korzystasz z kontrolki SmartBox, moesz w poniszy sposb ustawi jej etykiet i pobra tekst wpisany przez uytkownika:
Visual Basic
mySmartBox.LabelText = "Adres:"
userAddress = mySmartBox.Text
C#
mySmartBox.LabelText = "Adres:";
userAddress = mySmartBox.Text;
127
przypadku chcemy, eby tekst wewntrznej etykiety dao si zapisa, a tekst z pola tekstowego odczytywa.
eby w VB zdefiniowa waciwo tylko do zapisu, musimy uy modyfikatora WriteOnly. Waciwoci tylko do zapisu musz definiowa specjalny blok kodu rozpoczynajcy si
od sowa kluczowego Set. Taki blok kodu, nazywany akcesorem, wyglda jak procedura
przyjmujca parametr zawierajcy warto, ktra ma by ustawiana. Warto jest wykorzystywana w kodzie do przeprowadzenia danych operacji w przypadku waciwoci LabelText bdzie to ustawienie waciwoci Text etykiety, tak jak poniej:
Visual Basic
Kiedy wykonywany jest powyszy kod, wywoywany jest akcesor Set waciwoci LabelText z parametrem value o wartoci Adres:. Akcesor uyje tej wartoci do ustawienia
waciwoci Text kontrolki Label.
Innym akcesorem, ktrego moesz uy podczas definiowania waciwoci, jest Get. Umoliwia on zamiast zapisywania, odczytywanie wartoci. Oczywicie, nie moesz doda akcesora
Get do wartoci z modyfikatorem WriteOnly, ale jest on wymagany dla waciwoci z modyfikatorem ReadOnly, takiej jak Text:
Visual Basic
Waciwo Text jest tylko do odczytu, ale nie musi tak by. Jeli chciaby umoliwi formatkom wykorzystywanie kontrolki do ustawiania domylnego tekstu w polu tekstowym,
musiaby doda akcesor Set i usun modyfikator ReadOnly.
Kiedy definiujesz waciwoci w C#, nie musisz ustawia adnych specjalnych modyfikatorw, takich jak ReadOnly czy WriteOnly, dla waciwoci tylko do zapisu i tylko do odczytu. Waciwo, ktra ma tylko akcesor get, bdzie domylnie uznawana jako tylko do
odczytu.
128
C#
Podobnie, waciwo, ktra ma tylko akcesor set, bdzie uznawana za tylko do zapisu:
C#
129
<head>
<title>Tworzenie kontrolki internetowej uytkownika w ASP.NET</title>
</head>
<body>
<form id="Form1" runat="server">
<sp:SmartBox id="nameSb" runat="server" LabelText="Imi:" />
<sp:SmartBox id="addressSb" runat="server"
LabelText="Adres:" />
<sp:SmartBox id="countrySb" runat="server"
LabelText="Kraj:" />
<sp:SmartBox id="phoneSb" runat="server"
LabelText="Telefon:" />
</form>
</body>
</html>
Wczytanie tej strony spowoduje wygenerowanie wyniku, ktry widzielimy na rysunku 4.10.
Oczywicie jest to bardzo prosty przykad, ale atwo moemy go rozbudowa do innych celw.
W powyszym kodzie moesz zobaczy, e ustawiamy waciwo LabelText bezporednio w znaczniku kontrolki. Zamiast tego moglibymy odwoywa si do waciwoci z poziomu kodu, tak jak poniej:
Visual Basic
C#
Strony wzorcowe
Strony wzorcowe s now funkcjonalnoci w ASP.NET, ktra wiele zmienia w sposobie
skadania formatek internetowych. Strony wzorcowe s podobne do kontrolek internetowych
uytkownika, poniewa skadaj si z HTML-a i innych kontrolek, mog by rozszerzane o zdarzenia, metody i waciwoci, a take nie mog by wczytywane bezporednio przez uytkowni-
130
kw zamiast tego s uywane jak klocki, ktre mona wykorzysta podczas projektowania
struktury formatki internetowej.
Strona wzorcowa jest szablonem strony, ktry moe by zastosowany do nadania wielu formatkom internetowym spjnego wygldu. Na przykad moe ona okrela standardow struktur
zawierajc nagwek, stopk i inne elementy, ktre maj by wywietlane na wielu formatkach
internetowych aplikacji.
Pliki stron wzorcowych zawsze maj rozszerzenie .master i, podobnie do formatek internetowych i kontrolek internetowych uytkownika, obsuguj pliki ukrywajce kod. Wszystkie
strony wzorcowe dziedzicz po klasie System.Web.UI.MasterPage.
Tworzenie struktury witryny za pomoc stron wzorcowych i kontrolek internetowych uytkownika daje due moliwoci atwego modyfikowania i rozszerzania witryny. Jeli witryna
korzysta z tych funkcjonalnoci w dobrze zaplanowany sposb, modyfikowanie poszczeglnych elementw strony lub jej funkcjonalnoci moe by bardzo atwe, poniewa aktualizowanie strony wzorcowej lub kontrolki internetowej uytkownika wywouje natychmiastowy
efekt we wszystkich formatkach internetowych, ktre z nich korzystaj.
Jak ju wspomnielimy, strona wzorcowa jest tworzona za pomoc HTML-a i kontrolek,
wczajc w to specjaln kontrolk ContentPlaceHolder. Jest ona zamarkowanym miejscem, ktre moe by wypenione zawartoci odpowiedni do potrzeb kadej formatki internetowej korzystajcej ze strony wzorcowej. Podczas tworzenia strony wzorcowej doczamy do
niej ca podstawow struktur przyszych stron, ktre bd z niej korzysta, wczajc w
to znaczniki <html>, <head> oraz <body>, i umoliwiamy stronie internetowej okrelenie
zawartoci wywietlanej w zamarkowanych miejscach.
Zobaczmy na prostym przykadzie, w jaki sposb to dziaa. Przypumy, e mamy witryn
z wieloma stronami zawierajcymi standardowy nagwek, stopk i menu nawigacyjne, uoone
tak jak ramki na rysunku 4.11.
Jeli wszystkie strony w witrynie maj ten sam nagwek, stopk i menu nawigacyjne, mona
umieci te komponenty w stronie wzorcowej i tworzy formatki internetowe, ktre na kadej
stronie dopasowuj tylko obszary zawartoci. Zaczniemy tworzy tak stron w rozdziale 5.,
ale przyjrzyjmy si krtkiemu przykadowi.
Dla uproszczenia nie doczymy menu doczymy tylko nagwek, stopk i miejsce na
zawarto. W folderze Learning stwrz nowy plik o nazwie FrontPages.master i wpisz do niego
poniszy kod:
Plik: FrontPages.master (fragment)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
131
Rysunek 4.11.
Prosty ukad witryny
internetowej
<head>
<title>Strona gwna</title>
</head>
<body>
<form id="myForm" runat="server">
<h1>Witamy w SuperSite Inc!</h1>
<asp:ContentPlaceHolder id="FrontPageContent"
runat="server" />
<p>Copyright 2006</p>
</form>
</body>
</html>
Strona wzorcowa wyglda niemale jak formatka internetowa, z wyjtkiem jednej wanej
rnicy: ma pust kontrolk ContentPlaceHolder. Jeli chcesz stworzy formatk internetow opart na tej stronie wzorcowej, musisz tylko odnie si do niej za pomoc dyrektywy Page i doda kontrolk Content z zawartoci, ktr chcesz umieci.
Sprbujmy to zrobi. Stwrz formatk internetow o nazwie FronPage.aspx i dodaj do niej
poniszy kod:
Plik: FrontPage.master (fragment)
<%@ Page MasterPageFile="FrontPages.master" %>
<asp:Content id="myContent" runat="server"
ContentPlaceHolderID="FrontPageContent">
<p>
Witamy na naszej witrynie! yczymy przyjemnej wizyty.
</p>
</asp:Content>
132
Chocia powyszy przykad jest bardzo prosty, atwo mona zobaczy otwierajce si moliwoci: moesz bez problemu stworzy wiele formatek internetowych opartych na tym szablonie. W naszym przypadku strona wzorcowa zawiera tylko pojedyncz kontrolk ContentPlaceHolder, ale mogaby mie ich wicej. Ponadto strona wzorcowa moe
definiowa zawarto, domylnie wywietlan wewntrz kontrolki ContentPlaceHolder na
stronach, ktrych formatki nie maj elementu Content dla tej kontrolki.
133
z takiego arkusza stylw bd wywietla te same czcionki, kolory i rozmiary, dziki czemu
witryna bdzie miaa spjny wygld. Bez wzgldu na to, czy witryna zawiera trzy czy trzysta
stron, zmiana stylu w arkuszu spowoduje, e natychmiast zmieni si wygld wszystkich stron,
ktre z niego korzystaj.
Problemem podczas korzystania z osadzonych stylw jest to, e nie mona ich uy
ponownie w innej stronie, co znacznie utrudnia wprowadzanie zmian dotyczcych
caej witryny.
134
Jeli dana regua jest uywana w osadzonym lub zewntrznym arkuszu stylw, jej pierwsza
cz musi okrela elementy, ktrych ma dotyczy ta regua. Robimy to za pomoc selektora.
W ASP.NET zazwyczaj uywamy dwch typw selektorw:
Selektor typu elementu
Selektor typu elementu jest stosowany dla kadej instancji okrelonego elementu. Na
przykad jeli chcielibymy zmieni kolor wszystkich nagwkw drugiego poziomu
w dokumencie, uylibymy selektora dla elementu typu <h2>:
h2
{
color: #369;
}
Klasy
Bezsprzecznie najpopularniejszym sposobem wykorzystania stylw w stronie jest
nadanie kademu elementowi atrybutu class, a nastpnie okrelenie stylu dla
elementw posiadajcych dan warto tego atrybutu. Na przykad ponisze oznaczenie
wywietla akapit, ktrego atrybut class ma warto fineprint:
<p class="fineprint">
Copyright 2006
</p>
Bez wzgldu na to, czy tworzysz zewntrzne arkusze, osadzone arkusze czy wplatane reguy
stylw, deklaracje stylw uywaj tej samej skadni.
Masz ju podstawowe pojcie o niektrych koncepcjach zawartych w CSS, przyjrzyjmy si
wic rnym typom stylw, ktre mog by uywane w aplikacjach ASP.NET.
Waciwoci stylw
Za pomoc stylw moesz zmienia wiele rnych typw waciwoci. Poniej znajduje si
lista najbardziej powszechnych typw waciwoci:
135
Czcionka
Ta kategoria udostpnia formatowanie elementw tekstowych, wczajc w to krj
czcionki, rozmiary, ozdabianie, grubo, kolory itp.
To
Ta kategoria umoliwia dostosowanie ta obiektw i tekstu. Wartoci w tej kategorii
pozwalaj zmienia to, wczajc w to wybr, czy jako to ma by uywany kolor,
czy rysunek i czy rysunek ta ma by powtarzany.
Blok
Ta kategoria umoliwia zmian odlegoci pomidzy akapitami, liniami tekstu, sowami
i literami.
Pudeko
Ta kategoria umoliwia dopasowanie tabel. W zalenoci od potrzeb moesz zmienia
obramowanie, marginesy wewntrzne, odlegoci i kolory w tabeli, wierszu lub
komrce.
Ramki
Tak kategoria umoliwia wywietlanie wok elementw strony ramek o rnych
kolorach, stylach i gruboci.
Lista
Ta kategoria umoliwia dopasowanie sposobu, w jaki tworzone s numerowane
i nienumerowane listy.
Pozycjonowanie
Zmiana pozycjonowania umoliwia dowolne przesuwanie i umiejscawianie znacznikw
i kontrolek na stronie.
Powysze kategorie przedstawiaj zarys aspektw projektowych, ktre mog by zmieniane
za pomoc CSS. W miar postpw w lekturze tej ksiki wiele z tych typw waciwoci
stylw zostanie wyjanionych.
Waciwo CssClass
Po zdefiniowaniu klasy w arkuszu stylw (zewntrznym bd wewntrznym) bdziesz chcia
j powiza z elementami w formatkach internetowych. Moesz je powiza z kontrolkami
internetowymi serwera w ASP.NET za pomoc waciwoci CssClass. W wikszoci
przypadkw warto, jak nadasz waciwoci CssClass, bdzie uywana jako warto
atrybutu class elementu tworzonego przez kontrolk.
Przyjrzyjmy si przykadowi. Najpierw w katalogu Learning stwrz plik o nazwie Styles.css
i skopiuj do niego poniszy kod:
Plik: Styles.css
.title
{
font-family: Arial, Helvetica, sans-serif;
font-size: 19px
}
.dropdownmenu
{
136
137
W nastpnym rozdziale nauczymy si korzysta z programu Visual Web Developer do tworzenia definicji CSS za pomoc prostego wizualnego interfejsu.
Podsumowanie
W tym rozdziale omwilimy formatki internetowe, kontrolki HTML serwera, kontrolki internetowe serwera, kontrolki internetowe uytkownika, strony wzorcowe oraz arkusze stylw.
Wszystkie te elementy mog by poczone w celu stworzenia struktur o duych moliwociach
dla witryn internetowych.
W nastpnym rozdziale zaczniemy tworzy prawdziwe aplikacje internetowe, przekadajc
na praktyk wikszo teorii, ktr dotd poznae, a take korzystajc z profesjonalnych
rodowisk programistycznych, ktre wykonaj cz pracy za Ciebie.