Darmowy fragment publikacji:
ASP.NET 2.0. Tworzenie witryn
internetowych z wykorzystaniem
C# i Visual Basica
Autor: Cristian Darie, Zak Ruvalcaba
T‡umaczenie: Ireneusz Jak(cid:243)bik, Maciej Jezierski
ISBN: 978-83-246-0999-4
Tytu‡ orygina‡u: Build Your Own ASP.NET 2.0
Web Site Using C# VB
Format: B5, stron: oko‡o 608
Przyk‡ady na ftp: 1991 kB
Poznaj ASP.NET 2.0 i naucz siŒ tworzy(cid:230) wydajne aplikacje internetowe!
(cid:149) Jak dostosowa(cid:230) (cid:156)rodowisko robocze do w‡asnych wymog(cid:243)w?
(cid:149) Kiedy stosowa(cid:230) C#, a kiedy Visual Basic?
(cid:149) W jaki spos(cid:243)b przyspieszy(cid:230) proces tworzenia aplikacji?
Czas statycznych witryn WWW dawno ju¿ przemin„‡. Dzi(cid:156), aby przyci„gn„(cid:230)
odwiedzaj„cych, nale¿y regularnie aktualizowa(cid:230) stronŒ, zamieszczaj„c na niej aktualne
tre(cid:156)ci. Serwisy i aplikacje internetowe pobieraj„ce artyku‡y z baz danych, ‡atwe
do modyfikowania i zabezpieczone przed niepowo‡anym dostŒpem to tera(cid:159)niejszo(cid:156)(cid:230)
i przysz‡o(cid:156)(cid:230) sieci. ASP to wykorzystywana od d‡u¿szego czasu technologia tworzenia
dynamicznych witryn WWW, kt(cid:243)ra po zaprezentowaniu platformy .NET zyska‡a zupe‡nie
nowe oblicze. Tworzenie serwis(cid:243)w i aplikacji internetowych z wykorzystaniem
ASP.NET 2.0 przebiega b‡yskawicznie. Mo¿liwo(cid:156)(cid:230) u¿ycia jŒzyka C# lub Visual Basic
oraz bezp‡atnych i ‡atwych w konfiguracji narzŒdzi sprawiaj„, ¿e ASP.NET 2.0 zyskuje
coraz wiŒksz„ popularno(cid:156)(cid:230).
Po lekturze ksi„¿ki (cid:132)ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem
C# i Visual Basica(cid:147) ta technologia przestanie mie(cid:230) przed Tob„ tajemnice. Czytaj„c j„,
dowiesz siŒ, jak zainstalowa(cid:230) i skonfigurowa(cid:230) narzŒdzia do pracy, podejmiesz decyzjŒ
o wyborze jŒzyka programowania, kt(cid:243)rego u¿yjesz do tworzenia aplikacji sieciowych,
i poznasz ten jŒzyk. Nauczysz siŒ korzysta(cid:230) z kontrolek .NET, budowa(cid:230) aplikacje, ‡„czy(cid:230) je
z bazami danych i implementowa(cid:230) mechanizmy uwierzytelniania u¿ytkownik(cid:243)w. Przeczytasz
tak¿e o generowaniu przesy‡ek e-mail z poziomu aplikacji oraz o operacjach na plikach.
(cid:149) Instalacja i konfiguracja serwera i narzŒdzi produkcyjnych
(cid:149) Podstawy ASP.NET
(cid:149) Programowanie w C# i Visual Basic
(cid:149) Tworzenie stron internetowych z wykorzystaniem kontrolek
(cid:149) Zastosowanie kaskadowych arkuszy styl(cid:243)w
(cid:149) Sprawdzanie poprawno(cid:156)ci danych wprowadzanych w formularzach
(cid:149) Projektowanie i tworzenie baz danych
(cid:149) Manipulowanie danymi za pomoc„ jŒzyka SQL
(cid:149) Korzystanie z technologii ADO.NET
(cid:149) Wy(cid:156)wietlanie danych na stronie za pomoc„ kontrolek
(cid:149) Zabezpieczanie aplikacji
Platforma .NET to przysz‡o(cid:156)(cid:230) programowania. Ju¿ dzi(cid:156) poznaj jej elementy
Wydawnictwo Helion
ul. Ko(cid:156)ciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści
O autorach ..................................................................................................................11
Przedmowa .................................................................................................................13
Rozdział 1. Wprowadzenie do platformy ASP.NET i .NET .......................................................17
Czym jest ASP.NET? ..................................................................................................................17
Instalacja niezbędnego 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
Rozdział 2. Podstawy ASP.NET ....................................................................................................45
Struktura strony ASP.NET ..........................................................................................................45
Dyrektywy .............................................................................................................................47
Bloki deklaracji kodu ............................................................................................................48
Bloki wykonywanego kodu ...................................................................................................50
Kontrolki serwera ASP.NET .................................................................................................51
Komentarze po stronie serwera .............................................................................................52
Tekst i znaczniki HTML .......................................................................................................53
Stan widoku .................................................................................................................................54
Korzystanie z dyrektyw ...............................................................................................................57
Języki ASP.NET ..........................................................................................................................58
Visual Basic ..........................................................................................................................58
C# ..........................................................................................................................................58
Podsumowanie .............................................................................................................................59
Rozdział 3. Podstawy programowania w VB i C# .......................................................................61
Podstawy programowania ............................................................................................................61
Zdarzenia i procedury kontrolek ............................................................................................62
Zdarzenia strony ....................................................................................................................65
Zmienne i deklaracje zmiennych ...........................................................................................68
Tablice ...................................................................................................................................70
Funkcje ..................................................................................................................................73
Operatory ..............................................................................................................................75
Instrukcje sterujące ................................................................................................................77
6
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Pętle .......................................................................................................................................79
Koncepcje programowania zorientowanego obiektowo ..............................................................83
Obiekty i klasy ......................................................................................................................84
Właściwości ..........................................................................................................................86
Metody ..................................................................................................................................87
Klasy .....................................................................................................................................87
Konstruktory .........................................................................................................................88
Zasięg ....................................................................................................................................88
Zdarzenia ...............................................................................................................................89
Dziedziczenie ........................................................................................................................89
Obiekty w .NET ....................................................................................................................90
Przestrzenie nazw ..................................................................................................................91
Wykorzystanie plików chowających kod ....................................................................................92
Podsumowanie .............................................................................................................................96
Rozdział 4. Tworzenie stron internetowych ASP.NET ...............................................................97
Formatki internetowe ...................................................................................................................98
Kontrolki HTML serwera ............................................................................................................99
Korzystanie z kontrolek HTML serwera .............................................................................100
Kontrolki internetowe serwera ...................................................................................................103
Standardowe kontrolki internetowe serwera ........................................................................105
Kontrolki List ......................................................................................................................111
Zaawansowane kontrolki .....................................................................................................113
Kontrolki internetowe użytkownika ..........................................................................................124
Tworzenie kontrolki internetowej użytkownika ..................................................................124
Strony wzorcowe .......................................................................................................................130
Korzystanie z kaskadowych arkuszy stylów (CSS) ...................................................................132
Typy stylów i arkuszy stylów ..............................................................................................133
Podsumowanie ...........................................................................................................................137
Rozdział 5. Tworzenie aplikacji internetowych ......................................................................... 139
Wstęp do projektu Dorknozzle ..................................................................................................140
Korzystanie z programu Visual Web Developer .......................................................................141
Funkcje programu ...............................................................................................................143
Uruchamianie projektu ..............................................................................................................150
Wykorzystanie serwera internetowego wbudowanego
w program Visual Web Developer ....................................................................................151
Używanie IIS .......................................................................................................................153
Główne funkcjonalności aplikacji internetowej .........................................................................158
Web.config ..........................................................................................................................159
Global.asax ..........................................................................................................................162
Korzystanie ze stanu aplikacji .............................................................................................164
Korzystanie z sesji użytkownika .........................................................................................170
Korzystanie z obiektu Cache ...............................................................................................172
Korzystanie z Cookie ..........................................................................................................173
Początek projektu Dorknozzle ...................................................................................................176
Przygotowanie mapy witryny ..............................................................................................176
Korzystanie z tematów, skórek i stylów ..............................................................................178
Tworzenie strony wzorcowej ..............................................................................................183
Korzystanie ze strony wzorcowej ........................................................................................186
Rozbudowywanie Dorknozzle ...................................................................................................188
Debugowanie i obsługa błędów .................................................................................................191
Debugowanie w programie Visual Web Developer ............................................................191
Inne rodzaje błędów ............................................................................................................196
Spis treści
7
Błędy użytkownika ..............................................................................................................197
Lokalna obsługa wyjątków ..................................................................................................198
Podsumowanie ...........................................................................................................................202
Rozdział 6. Korzystanie z kontrolek sprawdzających poprawność ......................................... 203
Wprowadzenie do kontrolek ASP.NET sprawdzających poprawność .......................................204
Wymuszanie sprawdzania poprawności po stronie serwera ................................................207
Korzystanie z kontrolek sprawdzających poprawność ...............................................................212
RequiredFieldValidator .......................................................................................................212
CompareValidator ...............................................................................................................213
RangeValidator ....................................................................................................................216
ValidationSummary ............................................................................................................216
RegularExpressionValidator ................................................................................................217
CustomValidator .................................................................................................................220
Grupowanie sprawdzania poprawności .....................................................................................223
Aktualizacja witryny Dorknozzle ..............................................................................................225
Podsumowanie ...........................................................................................................................229
Rozdział 7. Projektowanie i tworzenie bazy danych .................................................................231
Czym jest baza danych? ............................................................................................................231
Tworzenie pierwszej bazy danych .............................................................................................233
Tworzenie nowej bazy danych za pomocą programu Visual Web Developer .....................234
Tworzenie nowej bazy danych za pomocą SQL Server Management Studio ......................235
Tworzenie tabel w bazie danych ................................................................................................236
Typy danych ........................................................................................................................240
Właściwości kolumny .........................................................................................................241
Klucze główne .....................................................................................................................242
Tworzenie tabeli Pracownicy ..............................................................................................244
Tworzenie pozostałych tabel ...............................................................................................247
Wypełnianie tabel z danymi ................................................................................................248
Koncepcje projektowania relacyjnej bazy danych .....................................................................250
Klucze obce .........................................................................................................................252
Korzystanie z diagramów bazy danych ...............................................................................254
Implementacja relacji w bazie danych Dorknozzle .............................................................257
Diagramy i relacje pomiędzy tabelami ................................................................................260
Podsumowanie ...........................................................................................................................263
Rozdział 8. Język SQL ................................................................................................................. 265
Odczyt danych z pojedynczej tabeli ..........................................................................................266
Korzystanie z instrukcji SELECT .......................................................................................268
Wybieranie określonych pól ................................................................................................270
Wybieranie unikalnych danych za pomocą DISTINCT ......................................................270
Filtrowanie wierszy za pomocą WHERE ............................................................................273
Wybieranie zakresu wartości za pomocą BETWEEN .........................................................273
Wyszukiwanie wzorców za pomocą LIKE ..........................................................................274
Korzystanie z operatora IN ..................................................................................................275
Sortowanie wyników za pomocą ORDER BY ....................................................................275
Ograniczanie liczby wyników za pomocą TOP ...................................................................276
Odczytywanie danych z wielu tabel ..........................................................................................277
Podzapytania .......................................................................................................................277
Złączenia tabel .....................................................................................................................278
Wyrażenia i operatory ...............................................................................................................279
Funkcje Transact-SQL ...............................................................................................................281
Funkcje arytmetyczne ..........................................................................................................281
Funkcje łańcuchowe ............................................................................................................283
8
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Funkcje daty i czasu ............................................................................................................284
Praca z grupami wartości ...........................................................................................................285
Funkcja COUNT .................................................................................................................286
Grupowanie rekordów za pomocą GROUP BY ..................................................................286
Filtrowanie grup za pomocą HAVING ................................................................................287
Funkcje SUM, AVG, MIN i MAX ......................................................................................288
Aktualizowanie istniejących danych ..........................................................................................288
Zapytanie INSERT ..............................................................................................................289
Zapytanie UPDATE ............................................................................................................290
Zapytanie DELETE .............................................................................................................290
Procedury składowane ...............................................................................................................291
Podsumowanie ...........................................................................................................................295
Rozdział 9. ADO.NET .................................................................................................................. 297
Wprowadzenie do ADO.NET ....................................................................................................297
Importowanie przestrzeni nazw SqlClient ...........................................................................299
Definiowanie połączenia do bazy danych ...........................................................................300
Przygotowanie Command ...................................................................................................301
Wykonywanie polecenia .....................................................................................................302
Konfiguracja uwierzytelniania bazy danych ........................................................................304
Odczytywanie danych .........................................................................................................306
Używanie parametrów w zapytaniach .................................................................................308
Zabezpieczanie kodu dostępu do danych ............................................................................314
Korzystanie z kontrolki Repeater ........................................................................................316
Tworzenie wykazu pracowników Dorknozzle ...........................................................................321
Wiązanie kolejnych danych .................................................................................................326
Wstawianie rekordów ..........................................................................................................331
Aktualizowanie rekordów ...................................................................................................337
Usuwanie rekordów .............................................................................................................350
Korzystanie z procedur składowanych ................................................................................353
Podsumowanie ...........................................................................................................................355
Rozdział 10. Wyświetlanie zawartości za pomocą kontrolek DataList ......................................357
Podstawy DataList .....................................................................................................................358
Obsługa zdarzeń kontrolki DataList ..........................................................................................361
Edycja elementów DataList i korzystanie z szablonów .............................................................368
Kontrolka DataList i program Visual Web Developer ...............................................................374
Stylizowanie kontrolki DataList ................................................................................................377
Podsumowanie ...........................................................................................................................378
Rozdział 11. Zarządzanie zawartością za pomocą kontrolek GridView
oraz DetailsView ....................................................................................................... 379
Korzystanie z kontrolki GridView .............................................................................................380
Dostosowanie kolumn kontrolki GridView .........................................................................386
Stylizowanie GridView za pomocą szablonów, skórek oraz arkuszy CSS ..........................387
Wybieranie rekordów ..........................................................................................................389
Korzystanie z kontrolki DetailsView .........................................................................................394
Stylizowanie kontrolki DetailsView ....................................................................................397
Zdarzenia GridView i DetailsView ...........................................................................................400
Przejście do trybu edycji .....................................................................................................403
Korzystanie z szablonów .....................................................................................................405
Aktualizowanie rekordów w kontrolce DetailsView ...........................................................408
Podsumowanie ...........................................................................................................................412
Rozdział 12. Zaawansowane metody uzyskiwania dostępu do danych ..................................... 415
Używanie kontrolek źródła danych ...........................................................................................416
Spis treści
9
Powiązanie kontrolki GridView z obiektem klasy SqlDataSource ......................................417
Powiązanie kontrolki DetailsView z obiektem klasy SqlDataSource ..................................423
Wyświetlanie list w kontrolce DetailsView .........................................................................433
Więcej o obiektach klasy SqlDataSource ............................................................................435
Praca ze zbiorami danych i tabelami danych .............................................................................436
Z czego składa się zbiór danych? ........................................................................................439
Powiązanie obiektów klasy DataSet z kontrolkami .............................................................440
Implementacja stronicowania ..............................................................................................445
Przechowywanie zbiorów danych w zbiorze ViewState .....................................................446
Implementacja sortowania ...................................................................................................449
Filtrowanie danych ..............................................................................................................459
Aktualizacja bazy danych na podstawie zmodyfikowanego zbioru klasy DataSet ....................460
Podsumowanie ...........................................................................................................................464
Rozdział 13. Bezpieczeństwo i uwierzytelnianie użytkownika ...................................................465
Podstawowe zasady bezpieczeństwa .........................................................................................466
Zabezpieczanie aplikacji w środowisku ASP.NET 2.0 ..............................................................468
Praca z uwierzytelnianiem formularzy ................................................................................469
Członkostwa ASP.NET 2.0 oraz role ........................................................................................480
Tworzenie struktur danych członkowskich .........................................................................480
Korzystanie z bazy danych w celu przechowywania danych członkowskich ......................483
Korzystanie z narzędzia ASP.NET Web Site Configuration Tool .......................................487
Tworzenie użytkowników i ról ............................................................................................489
Zmiana wymagań dotyczących siły hasła ............................................................................491
Zabezpieczanie aplikacji sieciowej .....................................................................................493
Używanie kontrolek logowania środowiska ASP.NET .......................................................495
Podsumowanie ...........................................................................................................................502
Rozdział 14. Praca z plikami i pocztą e-mail ...............................................................................503
Zapisywanie i odczytywanie plików tekstowych .......................................................................504
Ustawienia bezpieczeństwa .................................................................................................504
Zapisywanie treści w pliku tekstowym ................................................................................505
Czytanie treści z pliku tekstowego ......................................................................................511
Uzyskiwanie dostępu do katalogów i informacji o katalogach ..................................................513
Praca ze ścieżkami dostępu do katalogów i plików .............................................................516
Przekazywanie plików ...............................................................................................................520
Wysyłanie wiadomości e-mail w środowisku ASP.NET ...........................................................522
Konfiguracja serwera SMTP ...............................................................................................525
Wysyłanie testowej wiadomości e-mail ..............................................................................527
Tworzenie firmowej strony z biuletynem ............................................................................530
Podsumowanie ...........................................................................................................................537
Dodatek A Wykaz kontrolek sieciowych ...................................................................................539
Skorowidz ................................................................................................................. 585
Rozdział 4.
Tworzenie stron internetowych
ASP.NET
Jeśli kiedykolwiek budowałeś modele z klocków lego, jesteś dobrze przygotowany do two-
rzenia prawdziwych stron ASP.NET. Technologia ta oferuje wiele technik umożliwiających
programistom niezależne tworzenie różnych części stron internetowych, a następnie składanie
ich w całość.
Zawartość, którą tworzymy podczas pracy z ASP.NET, prawie nigdy nie jest statyczna. W czasie
projektowania myślimy w kategoriach szablonów posiadających miejsca na zawartość, która
zostanie wygenerowana dynamicznie w czasie działania aplikacji.
W tym rozdziale omówimy wiele obiektów i technik, które nadają stronom internetowym
ASP.NET wygląd, włączając w to:
(cid:141) formatki internetowe,
(cid:141) kontrolki HTML serwera,
(cid:141) kontrolki internetowe serwera,
(cid:141) kontrolki internetowe użytkownika,
(cid:141) strony wzorcowe,
(cid:141) obsługę nawigacji strony,
(cid:141) stylizowanie stron i kontrolek za pomocą CSS.
Jeśli ta lista trochę Cię przestraszyła — nie przejmuj się. Wszystko to jest znacznie łatwiejsze
do zrozumienia, niż by się wydawało.
98
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Formatki internetowe
Jak wiesz, podczas uczenia się nowej technologii zawsze trzeba opanować nową terminologię.
Jednak w ASP.NET nawet najprostsze terminy używane do opisu podstaw stron internetowych
zostały zmienione, żeby odzwierciedlić procesy, które w nich zachodzą.
Terminem używanym do opisania strony internetowej ASP.NET jest formatka internetowa
(ang. web form). Jest to główny obiekt w programowaniu ASP.NET. Spotkałeś się już z for-
matkami internetowymi — to pliki .aspx, z którymi dotąd pracowałeś w tej książce. Na
pierwszy rzut oka formatki internetowe wyglądają jak strony HTML, ale poza statyczną zawar-
tością HTML znajdują się w nich również elementy prezentacyjne ASP.NET oraz kod wykony-
wany po stronie serwera, który generuje dynamiczną zawartość i wykonuje żądane funkcje.
Każda formatka internetowa posiada znacznik form runat= server , zawierający
elementy specyficzne dla ASP.NET, z których składa się strona. Na stronie może znajdować
się tylko jedna formatka. Podstawowa struktura formatki internetowej znajduje się poniżej:
html
head
script runat= server language= język programowania
...tu znajduje się kod
/script
/head
body
form runat= server
...tu znajdują się elementy interfejsu użytkownika...
/form
/body
/html
Do odwoływania się do formatki internetowej i wykonywania na niej operacji z poziomu języka
programowania wykorzystujemy klasę System.Web.UI.Page. Być może przypominasz ją
sobie z przykładu z chowaniem kodu w rozdziale 3. W pliku chowającym kod musimy jawnie
korzystać z tej klasy. W sytuacjach, w których nie korzystamy z plików chowających kod
(np. cały kod piszemy w pliku .aspx), klasa Page także jest używana, tyle tylko, że niejaw-
nie.
Wewnątrz formatki możemy korzystać z różnorodnych elementów interfejsu użytkownika
począwszy od statycznego kodu HTML, aż po elementy, których wartości i właściwości mogą
zostać wygenerowane lub zmieniane albo przed pierwszym wczytaniem strony, albo po wysła-
niu formularza. Elementy te — w terminologii ASP.NET nazywane kontrolkami — umożli-
wiają wielokrotne używanie w różnych formatkach internetowych wspólnych funkcjonalności,
takich jak nagłówek strony, kalendarz, zawartość koszyka na zakupy czy ramka z cytatem
dnia. W ASP.NET jest kilka typów kontrolek:
(cid:141) kontrolki HTML serwera,
(cid:141) kontrolki internetowe serwera,
(cid:141) kontrolki internetowe użytkownika,
(cid:141) strony wzorcowe.
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
99
Pomiędzy powyższymi typami kontrolek są znaczne różnice techniczne, jednak łączy je łatwość
integracji i możliwość wielokrotnego wykorzystywania w witrynach internetowych. Przyj-
rzyjmy się wszystkim powyższym typom kontrolek po kolei.
Kontrolki HTML serwera
Kontrolki HTML serwera są na pozór podobne do zwykłych znaczników HTML, ale zawierają
atrybut runat= server . Pozwala on ASP.NET na sterowanie tymi kontrolkami, dzięki cze-
mu możemy odnosić się do nich z poziomu języka programowania. Jeśli na przykład na stro-
nie mamy znacznik a i chcemy dynamicznie, za pomocą kodu VB lub C#, zmienić adres,
do którego się odnosi, wykorzystamy atrybut runat= server .
Dla większości często używanych elementów HTML są odpowiednie kontrolki HTML po
stronie serwera. Stworzenie takiej kontrolki jest łatwe: wystarczy na końcu zwykłego znacznika
HTML dodać atrybut runat= server . Pełna lista bieżących klas kontrolek HTML i po-
wiązanych z nimi znaczników znajduje się tabeli 4.1.
Tabela 4.1. Klasy kontrolek HTML
Klasa
HtmlAnchor
HtmlButton
HtmlForm
HtmlImage
HtmlInputButton
HtmlInputCheckBox
HtmlInputFile
HtmlInputHidden
HtmlInputImage
HtmlInputRadioBut
ton
HtmlInputText
HtmlSelect
HtmlTable
HtmlTableRow
HtmlTableCell
HtmlTextArea
HtmlGenericContro
l
Powiązany znacznik
a runat= server
button runat= server
form runat= server
img runat= server
input type= submit runat= server
input type= reset runat= server
input type= button runat= server
input type= checkbox runat= server
input type= file runat= server
input type= hidden runat= server
input type= image runat= server
input type= radio runat= server
input type= text runat= server
input type= password runat= server
select runat= server
table runat= server
tr runat= server
td runat= server
th runat= server
textarea runat= server
span runat= server
div runat= server
Wszystkie pozostałe znaczniki HTML
100
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Bardziej szczegółowy opis tych klas znajduje się w „dodatku A”.
Wszystkie klasy kontrolek HTML serwera są zawarte w przestrzeni nazw System.Web.UI.
HtmlControls. Ponieważ są one przetwarzane przez ASP.NET po stronie serwera, mamy do-
stęp z poziomu kodu do ich właściwości w każdym miejscu strony. Jeśli znasz JavaScript,
HTML i CSS, wiesz, że zmienianie tekstu w znacznikach HTML, a nawet modyfikowanie za-
wartych w nich stylów może być kłopotliwe i podatne na błędy. Kontrolki HTML serwera
pozwalają rozwiązać te problemy, umożliwiając łatwą modyfikację strony za pomocą wybra-
nego języka ASP.NET, np. VB lub C#.
Korzystanie z kontrolek HTML serwera
Nic nie wyjaśnia teorii lepiej niż działający przykład. Stwórzmy prostą ankietę korzystającą
z następujących kontrolek:
(cid:141) HtmlForm,
(cid:141) HtmlButton,
(cid:141) HtmlInputText,
(cid:141) HtmlSelect.
Rozpoczniemy od stworzenia nowego pliku o nazwie Survey.aspx. Umieść go w katalogu
Learning, który założyłeś w rozdziale 1. Poniższy kod tworzy wizualny interfejs ankiety:
Plik: Survey.aspx (fragment)
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html
head
title Korzystanie z kontrolek HTML serwera w ASP.NET /title
!-- Tu będzie znajdował się kod --
/head
body
form runat= server
h2 Weź udział w ankiecie! /h2
!-- Wyświetl imię użytkownika --
p
Imię: br /
input type= text id= name runat= server /
/p
!-- Wyświetl e-mail --
p
E-mail: br /
input type= text id= email runat= server /
/p
!-- Wyświetl listę technologii --
p
Których technologii po stronie serwera używasz? br /
select id= serverModel runat= server multiple= true
option ASP.NET /option
option PHP /option
option JSP /option
option CGI /option
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
101
option ColdFusion /option
/select
/p
!-- Wyświetl .NET opcje opinii o net --
p
Czy wciąż lubisz .NET? br /
select id= likeDotNet runat= server
option Tak /option
option Nie /option
/select
/p
!-- Wyświetl przycisk potwierdzający --
p
button id= confirmButton OnServerClick= Click
runat= server Zatwierdź /button
/p
!-- Etykieta potwierdzenia --
p
asp:Label id= feedbackLabel runat= server /
/p
/form
/body
/html
Z tego, co dotąd dowiedziałeś się o kontrolkach HTML, powinieneś wywnioskować, z jakimi
klasami będziemy mieli do czynienia na tej stronie. Wszystko, co zrobiliśmy, to umieszczenie
kilku kontrolek HtmlInputText, kontrolki HtmlButton oraz HtmlSelect wewnątrz wy-
maganej kontrolki HtmlForm. Dodaliśmy także kontrolkę Label, którą wykorzystamy do
wyświetlenia wyników użytkownikowi.
Kontrolki HTML serwera w działaniu
Zapamiętaj, że kontrolki HTML serwera są w istocie znacznikami HTML z atrybutem runat=
server . W większości przypadków będziesz musiał także przypisać im identyfikatory, które
umożliwią Ci używanie ich w kodzie.
Kiedy wszystko będzie już gotowe, formatka internetowa Survey.aspx będzie przypominała
rysunek 4.1.
Kiedy użytkownik naciśnie przycisk, wyświetlimy przesłane odpowiedzi w przeglądarce.
W prawdziwej aplikacji najprawdopodobniej zapisalibyśmy informacje w bazie danych i być
może pokazalibyśmy wyniki w postaci wykresu. W każdym przypadku będziemy odnosić się
do właściwości kontrolek HTML w następujący sposób:
Visual Basic
Plik: Survey.aspx (fragment)
script runat= server language= VB
Sub Click(ByVal s As Object, ByVal e As EventArgs)
Dim i As Integer
feedbackLabel.Text = Nazywasz się: name.Value br /
feedbackLabel.Text += Twój adres e-mail: email.Value _
br /
102
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Rysunek 4.1. Prosta formatka wykorzystująca kontrolki HTML serwera
C#
feedbackLabel.Text += Lubisz pracować w: br /
For i = 0 To serverModel.Items.Count - 1
If serverModel.Items(i).Selected Then
feedbackLabel.Text += - _
serverModel.Items(i).Text br /
End If
Next i
feedbackLabel.Text += Lubisz .NET: likeDotNet.Value
End Sub
/script
Plik: Survey.aspx (fragment)
script runat= server language= C#
void Click(Object s, EventArgs e)
{
feedbackLabel.Text = Nazywasz się: + name.Value + br / ;
feedbackLabel.Text += Twój adres e-mail: + email.Value +
br / ;
feedbackLabel.Text += Lubisz pracować w: br / ;
for (int i = 0; i = serverModel.Items.Count - 1; i++)
{
if (serverModel.Items[i].Selected)
{
feedbackLabel.Text += - + serverModel.Items[i].Text +
br / ;
}
}
feedbackLabel.Text += Lubisz .NET: + likeDotNet.Value;
}
/script
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
103
Podobnie jak w przykładach z poprzednich rozdziałów, rozpoczniemy od umieszczenia kodu
VB lub C# w bloku kodu skryptu strony serwera wewnątrz części head strony. Następnie
stworzymy nową funkcję obsługi zdarzenia Click, która będzie przyjmowała dwa parame-
try zwyczajowe parametry. W końcu użyjemy kontrolki Label do wyświetlenia na stronie
odpowiedzi użytkownika.
Po napisaniu kodu zapisz swoją pracę i przetestuj wyniki w przeglądarce. Wpisz jakieś in-
formacje i naciśnij przycisk. Żeby wybrać kilka opcji z listy serverModel, kiedy będziesz
klikał opcje, naciśnij i przytrzymaj Ctrl. Informacje, które wprowadziłeś, pojawią się u dołu
strony, tak jak na rysunku 4.2.
Rysunek 4.2. Podgląd wyników ankiety
to przypisanie każdej kontrolce
Konkludując, praca z kontrolkami HTML serwera jest naprawdę prosta. Wszystko, czego potrze-
identyfikatora oraz dodanie atrybutu ru-
bujesz,
nat= server . Następnie możesz w prosty sposób odwoływać się i przeprowadzać na nich
operacje wykorzystując kod VB lub C# po stronie serwera.
Kontrolki internetowe serwera
Kontrolki internetowe serwera mogą być postrzegane jako bardziej zaawansowana wersja
kontrolek. Służą one do generowania zawartości za Ciebie — nie masz wpływu na to, jaki HTML
zostanie wygenerowany. O ile dobra znajomość HTML-a jest przydatna, o tyle nie jest ona
konieczna dla tych, którzy korzystają z kontrolek internetowych serwera.
Spójrzmy na przykład. Możemy użyć kontrolki serwera Label do umieszczenia tekstu we-
wnątrz formatki internetowej. Żeby zmienić tekst w kontrolce Label z poziomu kodu C# lub
VB, po prostu ustawiamy jej właściwość Text, tak jak poniżej:
Visual Basic
myLabel.Text = Myszka Miki
104
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Podobnie, żeby dodać pole tekstowe do formatki, używamy kontrolki internetowej serwera
TextBox. Ponownie możemy odczytać bądź zapisać tekst za pomocą właściwości Text:
C#
username = usernameTextBox.Text;
Mimo że stosujemy kontrolkę TextBox, ASP.NET tak naprawdę używa elementu input, jed-
nak nie musimy się już przejmować jego szczegółami. Dzięki kontrolkom internetowym
serwera Microsoft po prostu ponownie wymyślił HTML.
W przeciwieństwie do kontrolek HTML serwera, kontrolki internetowe serwera nie przekładają
się bezpośrednio na tworzone przez nie elementy HTML. Na przykład, do wygenerowania
elementu select możemy użyć jednej z dwóch kontrolek internetowych serwera: DropDown-
List lub ListBox.
Kontrolki internetowe serwera stosują ten sam podstawowy wzór co znaczniki HTML, ale
nazwa znacznika jest poprzedzona przez asp: i zapisana w notacji języka Pascal. Notacja języ-
ka Pascal polega na zapisywaniu pierwszych liter każdego wyrazu wielką literą (np. Text-
Box). Identyfikatory obiektów są zazwyczaj zapisywane za pomocą notacji wielbłądziej, w
której wszystkie pierwsze litery poszczególnych wyrazów, z wyjątkiem pierwszego, są zapi-
sywane wielką literą (np. usernameTextBox).
Rozpatrzmy poniższy element HTML input, który tworzy pole tekstowe:
input type= text name= usernameTextBox size= 30 /
Odpowiadającą mu kontrolką internetową serwera jest kontrolka TextBox, która wygląda na-
stępująco:
asp:TextBox id= usernameTextBox runat= server Colums= 30
/asp:textBox
Pamiętaj o tym, że w przeciwieństwie do zwykłych elementów HTML, które mógłbyś wykorzy-
stać w formatkach internetowych, kontrolki internetowe serwera są najpierw przetwarzane
przez ASP.NET i zamieniane na HTML. Efektem ubocznym tego podejścia jest to, że musisz
pamiętać o tym, żeby zawsze wstawiać znaczniki zamykające ( /asp:TextBox w powyż-
szym kodzie). Parsery HTML-a w przeglądarkach nie są rygorystyczne co do poprawności
kodu, ale ASP.NET jest. Pamiętaj o tym, że jeśli niczego nie ma pomiędzy znacznikami otwie-
rającymi i zamykającymi kontrolkę internetową serwera, możesz użyć skrótowej składni
(/ ). Tak więc kontrolka TextBox mogłaby wyglądać następująco:
asp:TextBox id= usernameTextBox runat= server Colums= 30 /
Podsumowując, kluczowe rzeczy, o których należy pamiętać podczas pracy z kontrolkami
internetowymi serwera, to:
(cid:141) Żeby prawidłowo działać, kontrolki internetowe serwera muszą zostać umieszczone
wewnątrz znacznika form runat= server .
(cid:141) Internetowe kontrolki serwera wymagają atrybutu runat= server .
(cid:141) Internetowe kontrolki serwera wstawiamy do formatki za pomocą przedrostka asp:.
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
105
Internetowych kontrolek serwera jest więcej niż kontrolek HTML. Niektóre z nich oferują
zaawansowane funkcje, których po prostu nie można zrealizować za pomocą samego HTML-a,
a inne z kolei tworzą dosyć złożony HTML za Ciebie. Z wieloma kontrolkami internetowymi
serwera oraz sposobem ich działania zapoznamy się w kolejnych rozdziałach.
Więcej o kontrolkach internetowych serwera, włączając w to właściwości metody i zdarzenia,
dowiesz się w „dodatku A”.
Standardowe kontrolki internetowe serwera
Zbiór standardowych kontrolek internetowych serwera dostarczany z ASP.NET na wiele sposo-
bów odzwierciedla kontrolki HTML serwera. Jednak kontrolki internetowe serwera udostępniają
wiele udoskonaleń i rozszerzeń, takich jak obsługa zdarzeń czy stanu widoku, spójniejszy zestaw
właściwości i metod oraz więcej wbudowanych funkcjonalności. W tym punkcie przyjrzymy się
kilku kontrolkom, z których najprawdopodobniej będziesz korzystał w codziennej pracy.
Pamiętaj o tym, żeby korzystać z dokumentacji .NET Framework 2.0 SDK za każdym razem,
kiedy będziesz chciał dowiedzieć się więcej o jakiejś klasie (lub kontrolce). Dokumentacja
dostępna jest w menu Start/Programy/Microsoft .NET Framework SDK 2.0/Documentation.
Żeby znaleźć klasę, po prostu wyszukaj jej nazwę. Jeśli jest wiele klas o tej samej nazwie, ale
znajdują się one w różnych przestrzeniach nazw, będziesz mógł wybrać odpowiednią z okienka
Index Results. Na przykład są trzy klasy o nazwie Label umieszczone w przestrzeniach
nazw System.Web.UI.MobileControls, System.Web.UI.WebControls oraz Sys-
tem.Windows.Form, co widać na rysunku 4.3. Najprawdopodobniej będziesz zainteresowany
wersją klasy umieszczoną w przestrzeni nazw WebControls.
Label
Najprostszym sposobem wyświetlenia statycznego tekstu na stronie jest po prostu wpisanie
go bezpośrednio do sekcji body strony bez żadnych znaczników. Jeśli jednak chcesz zmieniać
wyświetlany na stronie tekst za pomocą kodu ASP.NET, możesz umieścić go wewnątrz
kontrolki Label. Poniżej znajduje się typowy przykład:
asp:Label id= messageLabel Text= runat= server /
Poniższy kod ustawia właściwość Text kontrolki Label, tak żeby wyświetlała tekst „Witaj
świecie!”:
Visual Basic
Public Sub Page_Load()
messageLabel.Text = Witaj świecie!
End Sub
106
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Rysunek 4.3. Dokumentacja kontrolki Label
C#
public void Page_Load()
{
messageLabel.Text = Witaj swiecie ;
}
W kodzie funkcji Page_Load możemy zobaczyć, że kiedy strona po raz pierwszy jest wczy-
tywana, właściwość Text kontrolki Label z identyfikatorem message zostanie ustawiona
na „Witaj świecie”.
Literal
Jest to najprawdopodobniej najprostsza kontrolka w ASP.NET. Jeśli ustawisz jej właściwość
Text, spowoduje to po prostu wstawienie tekstu do wynikowego kodu HTML bez żadnych
zmian. W przeciwieństwie do Label, która ma podobna funkcjonalność, Literal nie opa-
kowuje tekstu w znaczniki span umożliwiające ustawienie informacji o stylu.
TextBox
Kontrolka TextBox jest wykorzystywana do tworzenia pola tekstowego, w którym użytkow-
nik może zapisywać bądź z którego może czytać zwykły tekst. Właściwość TextMode
umożliwia ustawienie sposobu wyświetlania tekstu, tak żeby znajdował się w jednej linijce, w
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
107
wielu linijkach lub był ukrywany podczas wprowadzania (na przykład tak jak w polach haseł
HTML). Poniższy kod demonstruje, w jaki sposób moglibyśmy użyć jej w prostej stronie lo-
go
xtBox TextMode= SingleLine
wania:
p
ytkownik: asp:TextBox id= userTe
Uż
Columns= 30 runat= server /
/p
p
sło: asp:TextBox id= passwordTextBox
Ha
TextMode= Password Columns= 30 runat= server /
/p
p
Komentarz: asp:TextB
TextMode= MultiLine
runat= server /
/p
ox id= commentsTextBox
Columns= 30 rows= 10
W każdej z powyższych instanc
go, które ma zostać stworzone.
ji TextBox atrybut TextMode ustawia rodzaj pola tekstowe-
HiddenField
HiddenField jest prostą kontrolką, która tworzy element input
hidden. Możemy ustawić jej jedyną ważną właściwość: Value.
z atrybutem type równym
Button
Domyślnie kontrolka Button tworzy element input z atrybutem type o wartości submit.
syłany do serwera w celu prze-
Po naciśnięciu przycisku formularz, który go zawiera, jest wy
tworzenia i wywoływane są zdarzenia Click oraz Command.
Po
niższy kod wyświetla kontrolkę Button i Label:
asp:Button id= submitButton Text= Wyślij runa
OnClick= WriteText /
aps:Label id= messageLabel runat= server /
t= server
Zauważ atrybut OnClick w kontrolce. Po naciśnięciu przycisku wywoływane jest zdarzenie
Click, co powoduje wywołanie procedury WriteText. Będzie ona zawierała kod, który wy-
funkcje przeznaczone dla omawianego przycisku, na przykład wyświetlenie komuni-
konuje
katu:
Visual Basi
c
Public S
messag
End Sub
C#
ub WriteText(s As Object, e As EventArgs)
eLabel.Text = Witaj swiecie!
public void WriteText(Object s, EventArgs e)
{
}
messageLabel.Text = Witaj swiecie! ;
108
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
To ważne, żeby zrozumieć, iż zdarzenia są związane z większością kontrolek internetowych
serwera, a podstawowe techniki korzystania z nich są takie same, jak technika, której używali-
śmy ze zdarzeniem Click kontrolki Button. Wszystkie kontrolki implementują standardo-
wy zestaw zdarz
eń, ponieważ dziedziczą po klasie bazowej WebControl.
ImageButton
Kontrolka ImageButton jest podobna do kontrolki Button, ale za
u korzysta z podanego przez nas obrazka. Spójrz na przykład:
sk
asp:ImageButton id= myImgButton ImageUrl= myBu
runat= server OnClick= WriteText /
asp:Label id= messageLabel runat= server /
tton.gif
miast z systemowego przyci-
Zdarzenie Clic
ty ob
razek:
k kontrolki ImageButton odbiera koordynaty punktu, w którym został kliknię-
Visual Basi
c
Public Wr
iteText(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 hiperłącze, po którego kliknięciu wywoływane jest zdarze-
nie Click. Z punktu widzenia kodu ASP.NET, kontrolki LinkButton mogą być traktowane w
wi
ększości przypadków jak przyciski.
asp:LinkButton id= myLinkButton Text= Naci
runat=
server /
śnij tu
HyperLink
Kontrolka HyperLink tworzy na stronie hiperłącze o adresie ustalanym przez właściwość
NavigateUrl. W przeciwieństwie do kontrolki LinkButton udostępniającej funkcjonalno-
ści, kontrolki HyperLink są prze-
ści, takie jak zdarzenia Click czy sprawdzanie poprawno
zn
aczone do nawigacji z jednej strony do innej.
asp:HyperLink id= myLink NavigateUrl= http://www.sitepoint.com/
ImageUrl= splogo.gif runat= server SitePoint /asp:HyperLink
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
109
Jeśli jest podany, atrybut ImageUrl powoduje, że kontrolka wyświetla określony obrazek.
W takim przypadku tekst podany wewnątrz kontrolki będzie funkcjonował jako alternatywny
tekst obrazka.
Ch
eckBox
ntrolkę
Ko
dwa stany — zaznaczone lub niezaznaczone.
możesz wykorzystać do
CheckBox
wyświetlenia pola wyboru, które ma tylko
asp:CheckBox id= questionCheck Text= Tak, lubię .NET!
Checked= True runat= server /
eniem związanym z kontrolką CheckBox jest CheckChanged, które może
Głównym zdarz
zostać obsłużone przez atrybut OnCheckChanged. Właściwość Checked ma wartość True,
jeśli pole wyboru jest zaznaczone, i False, jeśli nie jest.
RadioButton
Ko
pu
ko
ntrolka RadioButton jest podobna do CheckBox z tym wyjątkiem, że kontrol
mogą być grupowane razem, dzięki czemu będą reprezentować zbiór opcji, z
jedna może zostać wybrana. Do grupowania służy właściwość GroupNam
asp:RadioButton id= warszawa GropupName= City Text= Warsza
runat= server / .br /
asp:RadioButton id= katowice
runat= server / .br /
asp:RadioButton id= kielce GropupName= City Text= Kielce
runat= server / .br /
asp:RadioButton id= krakow GropupName= City Text= Kraków
runa
t= server / .br /
e.
wa
GropupName= City Text= Katowice
ki tego ty-
których tyl-
Podobnie jak w kontrolce CheckBox, głównym zdarzeniem związanym z kontrolkami Ra-
dioButton jest CheckChanged, które może zostać o
bsłużone przez atrybut OnCheck-
Changed
.
Inną kontrolką, którą możemy wykorzystać do wyświetlenia pól wielokrotnego wyboru, jest
RadioButtonList, opisana w dalszej części rozdziału.
Im
age
ntrolka
Ko
Odpowiada on
Image
tworzy obrazek, który m
oże być zmieniany dynamicznie z poziomu kodu.
a znacznikowi img w HTML-u. Oto przykład:
asp:Image id= myImage ImageUrl= mygif.gif runat= server
AlternateText= opis /
ImageMap
Kontrolka ImageMap generuje HTML wyświetlający obrazki posiadające klikalne obszary,
nazywane aktywnymi miejscami. Każde z takich miejsc inaczej reaguje na kliknięcie przez
użytkownika.
110
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Ob
ks
sp
gły
szary są definiowane za pomocą trzech kontrolek, określających aktywne miejsca
ztałtach: CircleHotspot (okrąg), RectangleHotspot (prostok
ot (wielokąt). Poniżej znajduje się przykład definiujący kon
mi aktywnymi miejscami:
asp:ImageMap id= myImageMap tunat= server ImageUrl= image.jpg
asp:CircleHotSpot AlternateText= Przycisk1
Radius= 20 X= 50 Y= 50 /
asp:CircleHotSpot AlternateText= Przycisk2
Radius= 20 X= 100 Y= 50 /
/asp:ImageMap
o różnych
ąt) oraz PolygonHot-
trolkę ImageMap z dwoma okrą-
Żeby skonfigurować działania wynikające z kliknięcia aktywnych miejsc przez użyt
musimy ustawić właściwo
tów aktywnych miejsc, u
SpotMode jest
osta
kownika,
ść HotSpotMode kontrolki ImageMap i (lub) poszczególnych obiek-
żywając wartości przedstawionych w tabeli 4.2. Jeśli właściwość Hot-
i dla miejsca aktywnego, ta
tnia właściwość nadpisze tę ustawioną w bardziej ogólnej kontrolce ImageMap.
wiona zarówno w kontrolce ImageMap, jak
usta
artości HotSpotM
HotPotMode
T
abela 4.2. W
wartość
Inactive
Navigate
NotSet
PostB
ack
ode
Zachowanie po kliknięciu aktywnego miejsca
brak
Użytkownik jest przenoszony do określonego adresu URL.
Jeśli jest ustawiona dla kontrolki HotSpot, zachowanie jest dziedziczone
po rodzicielskiej kontrolce ImageMap. Jeśli w rodzicielskiej kontrolce ImageMap
określonej dom
Jeśli jest ustawiona dla ImageMap, wartość ta jest równoważna z Navigate.
Miejsce aktywne wywołuje zdarzenie
po stronie serwera i pozwala wyko
użytkownika.
, które może zostać obsłużone
nać jakąś operacje w odpowiedzi na działanie
yślnej wartości, ustawiana jest wartość Navigate.
Click
Dokumentacja Microsoft .NET Framework 2.0 SDK dla klasy ImageMap zawiera szczegółowe
przykłady korzystania z wartości HotSpotMode.
aceHolder
Pl
Kontrolka PlaceHolder umożliwia dynamiczne — za pomocą kodu — dodawanie ele
tów
w określonych miejscach na stronie:
asp:PlaceHolder id= pla
niższy kod dodaje nową kontrolkę HtmlButton wewnątrz
ceHolder runat= server /
kontrolki PlaceHolder:
men-
Po
Visual Basi
c
Public Sub Page_Load()
Dim myButton As HtmlButton = New HtmlButton()
myButton.InnerText = Nowy przycisk
placeHolder.Controls.A
End
dd(myButton)
Sub
Rozdział 4. ♦ Tworzenie stron internetowych ASP.NET
111
C#
mlButton myButton = new HtmlButton();
public void Page_Load()
{
Ht
myButton.InnerText = Nowy przycisk ;
placeHolder.Controls.Add(myButton);
}
, ponieważ umożliwia traktowa-
biorczych operacji. Na
Click kontrolki:
Pa
Ko
nie
pr
żna wyświetlać lub chować za pomocą zdarzenia
nel
ntrolka Panel działa podobnie do elementu div w HTML
zawartych w niej elementów jako grupy i wykonywanie na nich z
zykład panel mo
asp:Panel id= myPanel runat= server
p Użytkownik: asp
runat= server / /p
p Hasło: asp:TextBox id= passwordTextBox
TextMode= Password Colums= 30 runat= server /
/p
/asp:Panel
asp:Button id= hideButton Text= Ukryj panel OnClick= Hide
runat= server /
:TextBox id= usernameTextBox Colums= 30
Panel
Po
zn
ko
wyższy kod umieszcza w kontrolce Panel dwie kontrolki
ajduje się po
ntrolki Panel
za kontrolką Panel
poprzez ustawianie jej właściwości Visible na False:
TextBox. Kontrolka Button
. Procedura HidePanel będzie sterowała widocznością
Visu
al Basic
Public Sub HidePanel(s As Object, e As EventArgs)
myPanel.Visible = False
End Sub
public void HidePanel(Object s, EventArgs e)
{
myPanel.Visible = false;
}
C#
W powyższym przykładzie, kiedy użytkownik kliknie przycisk, wywoływane jest zdarzenie
Click, które wykonuje procedurę HidePanel ustawiającą właściwość kontrolki Panel na Fal-
se.
Kont
rolki List
W tym punkcie zapoznamy się z kontrolkami ASP.NET wyświetlającymi proste listy elemen-
oraz BulletedList.
tów: ListBox, DropDownList, CheckBoxList, RadioButtonList
112
ASP.NET 2.0. Tworzenie witryn internetowych z wykorzystaniem C# i Visual Basica
Dr
opDownList
ntrolka DropDownList
Ko
jednego elementu z listy za pomocą rozwijanego menu.
jest podobna do elementu HTML select. Umożliwia ona wybór
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
j przydatnym zdarzeniem udostępnianym przez tę kontrolkę jest SelectedIn-
Najbardzie
dexChanged. Zdarzenie to jest udostępniane przez inne kontrolki list, takie jak CheckBoxList
i RadioButtonList, i umożliwia programiście łatwą komunikację z kontrolką. Kontrolki te
mogą być również powiązane bazą danych, dzięki czemu można do rozwijanego menu wsta-
wiać dynamiczną zawartość.
Li
Ko
ti
ti
tak
stBox
ntrolka ListBox odpowiada elementowi HTML select z
ple lub size (size musi mieć wartość 2 lub wię
onMode na multiple, użytkownik będzie mógł wy
jak w poniższym przykładzie:
asp:ListBox id=
Selection
asp:ListIte
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
listTechnologies runat= server
Mode= Multiple
m Text= ASP.NET Value= aspnet /
ustawionym atrybutem mul-
kszą). Jeśli ustawisz atrybut Selec-
brać więcej niż jeden element z listy,
Ra
dioButtonList
dobnie jak kontrolka RadioB
tnego wyboru, z tą różnicą,
Po
kro
składni. Oto przyk
ład:
List reprezentuje pola wielo-
utton, kontrolka RadioButton
że ta druga reprezentuje i
Pobierz darmowy fragment (pdf)