Zaawansowane aplikacje internetowe – ASP.NET

Download Report

Transcript Zaawansowane aplikacje internetowe – ASP.NET

Zaawansowane aplikacje internetowe
– ASP.NET 2.0 / 3.5
Prowadzący: Jarosław Kurek
[email protected]
Datamining-Solutions
Agenda
•
•
•
•
I Przypomnienie architektury .NET
II Podstawy witryny internetowej
III Walidacja
IV Dane i dostęp do danych
Datamining-Solutions
I. Architektura platformy .NET
Datamining-Solutions
I. Architektura platformy .NET
• Nowości w ASP.NET 2.0
•
•
•
•
Ponad 40 nowych kontrolek w porównaniu z 1.1
Strony wzorcowe (Master Pages)
Motywy graficzne (Themes)
mechanizmy autoryzacji, ról i konfiguracji,
(ASP.NET Membership Provider).
• Kontrolki Data source
• Kontrolki Web Parts
• Profile użytkownika (Profiles)
Datamining-Solutions
I. Architektura platformy .NET
•
Nowości w Framework 3.0
•
•
•
•
WPF (Windows Presentation Foundation)
WCF (Windows Communication Foundation)
WF (Windows Workflow Foundation)
Skok z ASP.NET 2.0 -> ASP.NET 3.5 bo:
•
•
Framework 3.0 nie wprowadził nowego CLR
Framework 3.0 nie wprowadził nowego ASP.NET
Datamining-Solutions
I. Architektura platformy .NET
• Nowości w ASP.NET 3.5
•
•
•
•
•
LINQ (Language Integrated Query)
ASP.NET AJAX
Korzysta z silnika ASP.NET 2.0
SilverLight
Zestawy algorytmów kryptograficznych
• Korzysta nawet z katalogu ASP.NET podczas
„cachowania”
C:\WINDOWS\Microsoft.NEt\Framework\v2.0.50727\Te
mporary ASP.NET Files
Datamining-Solutions
Framework 4.0 (wkrótce)
Więcej na posterze pod linkiem PlakatNETFX4.pdf
Datamining-Solutions
I. Architektura platformy .NET
• Nowości w Visual Studio .NET 2008
• Projectless vs project-based
• Wybór wersji ASP.NET 2.0/3.5 (multitargeting)
• Łatwiejsza obsługa CSS (Cascading Style Sheets)
Datamining-Solutions
II. Podstawy witryny internetowej
ASP.NET 2.0
1. Struktura klasy Page,
2. Kod z treścią oraz kod ukryty (separacja
warstw),
3. Metody przekierowania do innej strony
4. Metody przesyłanie danych pomiędzy stronami,
5. Automatyczny postback (autopostback)
6. Cykl życiowy strony,
Datamining-Solutions
1. Struktura klasy Page
• Strona – plik (*.aspx)
• Plik *.aspx- „plik z treścią” – wizualna zawartość strony
(HTML+kontrolki ASP.NET)
• Plik *.aspx.cs (C#) *aspx.vb (VB) – „kod ukryty” –”code
behind”
• Elementy HTML nie są przetwarzane przez serwer
platformy .NET (chyba , że runat =„server”)
• Pierwsze żądanie strony- kompilacja JIT platformy .NET
klasy użytkownika
• Klasa użytkownika wywodzi się z System.Web.UI.Page
Datamining-Solutions
1. Struktura klasy Page c.d.
• Klasa kompilowana do podzespołu (buforowany
w pamięci serwera)
• Kolejne żądania – z bufora (brak kompilacji)
• Nazwa klasy np. _Default może być różna od
nazwy pliku z treścią np. „_Default1.aspx
• W pierwszej linijce strony *.aspx - dyrektywa
strony:
Datamining-Solutions
1. Struktura klasy Page c.d.
Właściwości klasy Page 3.5
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Application
AppRelativeVirtualPath
AsyncTimeout
BindingContainer
Buffer
Cache
ClientID
ClientQueryString
ClientScript
ClientTarget
CodePage
ContentType
Controls
Culture
EnableEventValidation
EnableTheming
EnableViewState
EnableViewStateMac
Datamining-Solutions
1. Struktura klasy Page c.d.
Właściwości klasy Page 3.5
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
ErrorPage
Form
Header
ID
IdSeparator
IsAsync
IsCallback
IsCrossPagePostBack
IsPostBack
IsReusable
IsValid
Items
Master
MasterPageFile
Page
Parent
PreviousPage
Request
Datamining-Solutions
1. Struktura klasy Page c.d.
Właściwości klasy Page 3.5
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Response
ResponseEncoding
Server
Session
SkinID
StyleSheetTheme
Theme
Title
Trace
TraceEnabled
User
Validators
ViewStateEncryptionMode
ViewStateUserKey
Visible
Datamining-Solutions
2. Kod z treścią oraz kod ukryty
Dwa podejścia pisania stron ASP.NET:
• Tylko jeden plik *.aspx
• oraz …
Datamining-Solutions
2. Kod z treścią oraz kod ukryty
Dwa podejścia pisania stron ASP.NET:
• Dwa pliki powiązane (*.aspx i *.aspx.cs- C#)
Plik z treścią:
JedenPlik.aspx
Plik ukryty:
DrugiPlik.aspx.cs
Datamining-Solutions
2. Metody przekierowania
Cztery główne metody:
• HyperLink – wartość właściwości NavigateURL, (
bez ponowengo zapytania serwera)
• Metoda Server.Transfer – klasa HttpServerUtility,
przerywa przetwarzanie bieżącej strony i
przetwarza nową (brak w historii przeglądarki +
adres pozostaje stary)
• Metoda Response.Redirect – klasa
HttpResponse ( bez ponownego zapytania
serwera)
• Mechanizm Cross-Page-Posting (PostBackURL)
- nowość
Datamining-Solutions
2. Metody przekierowania
Różnica pomiędzy Response.Redirect
i
Server.Transfer
Datamining-Solutions
4.Metody przesyłania danych pomiędzy
stronami
Stan Widoku
QueryString
Cookies
Typ danych
Wszystkie typy
danych (serial.)
Łancuch znaków
Łancuch znaków
Magazyn danych
Pole ukryte w
bieżacej stronie
Łańcuch URL
1-2KB
Komputer klienta
(plik tekstowy)
Czas życia
W bieżącej
stronie
Tylko jeżeli
istnieje URL
Ustawiany
programowo
Wydajność
Obciąża
transmisje
Niezmienna,
mały rozmiar
danych
Niezmienna,
mały rozmiar
danych
Typowe użycie
Transmisja
zmiennych do
drugiej strony
Wysyłanie np. ID
produktu
Personalizacja
dla stron
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami
Stan sesji
Stan Aplikacji
Typ danych
Wszystkie typy danych
Wszystkie typy danych
Magazyn danych
Pamięć serwera
Pamięc serwera
Czas życia
Domyślnie 20 min,
ustawiana programowo
Aż do restartu serwera
Wydajność
Obniża wydajność w
przypadku dużej liczby
danych, każdy
użytkownik posiada
kopię sesji!!!
Obniża wydajność w
przypadku dużej liczby
danych
Typowe użycie
Np. Koszyk w sklepie
internetowym
Zapisanie globalnych
zmiennych
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami
Przykład zapisu wartości kontrolek za pomocą
stanu widoku - ViewState
Datamining-Solutions
4.Metody przesyłania danych pomiędzy
stronami
Przykład zapisu wartości kontrolek za pomocą
stanu widoku - ViewState
W przypadku klas własnych, należy dodać [Serializable] !!!
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami cd.
Przykład przekazania zmiennych za pomocą
metody GET - QueryString
Page.aspx
Test.aspx
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami
Przykład zapisu wartości kontrolek za pomocą
ciasteczek (Cookies) - informacji jawne
- Konieczny using System.Net;
Odczyt
cookie
Tworzenie
cookie
Usuwanie
cookie
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami -SESJA
•
Zamknięci sesji, przekroczenie limitu czasu
•
Jeżeli Cookie wyłączony, SessionID w URL
•
Wywołuje zdarzenia sesji: Session_Start i
Session_End, obłsuga zdarzeń w global.asax
•
Sesja korzysta z 120 bit identyfikatora SessionID
•
Konfiguracja stanu sesji nadzorowana –
dyrektywa strony EnableSesionState:
true,false,readonly
•
Stan sesji w pamięci serwera jako cześć procesu
asp.net
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami -Sesja
Trzy metody magazynowania stanu sesji: SessionID :
-w cookies
-w URL
Stan sesji:
implementowany za
pomocą właściwości
Contents collection klasy
HttpSessionState
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami -Sesja
Trzy metody magazynowania stanu sesji:
•
Konfiguracja typu stanu sesji (mode) w web.config:
 mode=off – stan sesji wyłączony
 mode=InProc – w procesie na serwerze lokalnym (default)
 mode=StateServer – stan sesji na serwerze zdalnym, konieczny
wpis stateConnectionString
 mode=SqlServer, stan sesji na serwerze SQL, konieczny wpis
sqlConnectionString
 mode=Custom, pozwala na określenie własnego dostawcy
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami –Sesja
•Przykład użycia sesji w trybie InProc z wymuszonym
odrzuceniem plików cookies jako magazynu SessionID
Klasa użytkownia
Ustawieni trybu
class1
W web.config
Obsługa zapisu
i odtworzenie
Obiektu klasy class1
Datamining-Solutions
4.Metody przesyłanie danych pomiędzy
stronami –stan sesji
Wynik kodu z poprzedniego slajdu:
Wymuszony brak obsługi cookies
Datamining-Solutions
4. Metody przesyłanie danych pomiędzy
stronami –stan aplikacji
•
Stan aplikacji istnieje do momentu restartu serwera
•
Plik global.asax zawiera globalny kod całej aplikacji i
zawiera obsługę zdarzeń: Application_Start,
Application_End, Application_Error
•
W stanie aplikacji współużytkowane są zmienne globalne
za pomocą słownika obiektów
•
Dzięki właściwości Application klasy HttpApplication
Datamining-Solutions
4. Metody przesyłanie danych pomiędzy
stronami –stan aplikacji
•
Przykład użycia - licznik żądań
Niepoprawny
kod
Poprawny
kod
Datamining-Solutions
4. Nowość w ASP.NET 2.0
mechanizm Cross-Page-Posting
• Otrzymywanie danych z poprzedniej strony
• Dla kontrolki (np. Button) ustawiamy PostBackUrl lub
przekierowanie z udziałem servera: Server.Transfer
• Nie działa z Response.Redirect – bez udziału serwera.
• Kontrolki z poprzedniej strony dostępne dzięki
właściwości Page.PreviousPage
Datamining-Solutions
4. Nowość w ASP.NET 2.0
mechanizm Cross-Page-Posting
Przykład użycia:
Bez deklaracji
dyrektywy
Późne wiązanie
Użycie
deklaracji
dyrektywy
Użycie
Akcesora na
stronie
CrossPagePostinaspx.aspx
Datamining-Solutions
5. AutoPostback
• Automatyczny postback możliwy jest przez ustawienie
właściwości kontrolki na Autopostback na True
• Gdy kontrolka zmieni stan (u klienta) wychwytuje to
zdarzenie onchange w javascript
• generuje się automatycznie funkcja function
__doPostBack(eventTarget, eventArgument)
• Zapisane w postaci pól ukrytych przesyłane są dane
dotyczące kontrolki:
• <input type="hidden" name="__EVENTTARGET"
id="__EVENTTARGET" value="" />
• <input type="hidden" name="__EVENTARGUMENT"
id="__EVENTARGUMENT" value="" />
Datamining-Solutions
6. Cykl życiowy strony
Datamining-Solutions
III Znajdowanie i usuwanie błędów
1. Śledzenie wykonywania programu
2. Debugowanie programu
3. Obsługa błędów
Datamining-Solutions
III Znajdowanie i usuwanie błędów -Śledzenie
wykonywania programu
• Poprzednio (ASP 3.0) Response.Write();
• w ASP.NET 2.0 śledzenie na poziomie:
Request Details, Time of Request, Request Type, Status Code, Trace
Information, Control Tree
własne komentarze:
Trace.Write(„Kategoria”,”Komunikat ostrzeżenia”,wyjątek)
Trace.Warn…. – kolor czerwony
• Na poziomie strony (w dyrektywie Trace=„true”):
• Na poziomie aplikacji (wpis w web.config):
wywołujemy: http://mojastrona/trace.axd
Datamining-Solutions
III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu
na poziomie strony
Datamining-Solutions
III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu
na poziomie aplikacji
Datamining-Solutions
III Znajdowanie i usuwanie błędów
debugowanie aplikacji
Start/continue
Uruchamia lub kontunuuje wykonywania
programu
Break All
Zatrzymuje wykonywanie programu w aktualnie
wykonywanym wierszu
Stop
Debugging
Zatrzymuje usuwanie błędów
Restart
Zatrzymuje wykonywanie programu i
natychmiast uruchamia ponownie
Step Into
Wchodzi do metody (zagnieżdzenie)
Step Over
Pomija metodę (brak zagnieżdzenia)
Step Out
Kończy wykonywanie kodu metody oraz
wychodzi z metody i ustawia się w miejscu
następnym po wywołaniu metody
Toogle
Breakpoints
Ustawia punkt kontrolny w danym wierszu
Datamining-Solutions
III Znajdowanie i usuwanie błędów
debugowanie aplikacji
•
Właściwości punktu kontrolnego (zatrzymuje
wykonanie programu w wyznaczonym wierszu):
•
•
•
•
•
Location – ustawia punkt kontrolny w wyznaczonym wierszu,
Condition – ustawia warunek is true/has change
Hit Counter – zatrzymuje wykonywanie programu po osiągnięciu danej
liczby powtórzeń kodu
Filter- punkt stopu dla określonych procesów, wątków, itp.
When Hit – uruchomienie np. makr w momencie stopu
Datamining-Solutions
III Znajdowanie i usuwanie błędów
debugowanie aplikacji – obsługa błędów
• Cel – przechwycenie błędu zanim aplikacja wyśle
klientowi podstawową stronę błędu
• Konfiguracja obsługi błędów- plik web.config dla
całej aplikacji
• W przypadku przechwycenia błędu o danych
kodzie następuje przekierowanie
• mode: true, false, RemoteOnly
• Dla konkretnej strony „ErrorPage”:
Datamining-Solutions
IV Walidacja danych
• Do sprawdzanie poprawności danych
wprowadzonych przez użytkownika:
•
•
•
•
Nr karty kredytowej,
Kodów pocztowych,
Nr Pesel, NIP, ISBN
Adres email, …
• W ASP.NET wykorzystujemy kontrolki do
sprawdzania poprawności wejściowych danych
użytkownika.
• Przeglądarki uplevel >=IE 4.0, .Net – u klienta,
• Przeglądarki downlevel <IE 4.0,.Net – na serwerze
• Wymuszenie walidacji po stronie serwera:
Datamining-Solutions
IV Walidacja danych
•
kontrolki do sprawdzania poprawności wejściowych danych
użytkownika:
•
RequiredFieldValidator – wymagane dane
•
RangeValidator – wartość w podanym zakresie
•
CompareValidator – porównanie z inną wartością lub wartością
kontrolki
•
RegularExpressionValidator – walidacja za pomocą wyrażeń
regularnych
•
CustomValidator – własne metody do sprawdzania poprawności
danych wejściowych (u klienta –javascript, na serwerze np.c#)
•
ValidationSummary- podsumowuje błędy
Datamining-Solutions
IV Walidacja danych - RequiredFieldValidator
•
Gwarantuje wpisanie wartości do kontrolki nadzorowanej oraz
może wymagać zmiany domyślnej wartości przez użytkownika
•
Właściwość ControlToValidate – wskazuje kontrolkę, w którą
będzie nadzorował,
•
Właściwość InitialValue – jeżeli wartość w kontrolce
nadzorowanej=InitialValue ->blad
•
SetFocusOnError=true - ustawia skupienie na pierwszą kontrolkę z
błędem
•
Można skorzystać programowo z właściwości Page.IsValid
•
ErrorMessage - komunikat błędu
Datamining-Solutions
IV Walidacja danych – ValidationSummary
•
Podsumowuje wszystkie błędy w jednej kontrolce i wyświetla
komunikaty o błędach
•
HeaderText- Nagłówek w kontrolce podsumowującej
•
ShowSummary=true, pokazuje informacje o błędach w HTML’u
•
ShowMessageBox=true, pokazuje informacje o błędach w oknie
informacyjnym Javascript
•
DisplayMode=0 –BulletList
•
DisplayMode=1 –List
•
DisplayMode=2 –SingleParagraph
Datamining-Solutions
IV Walidacja danych – CompareValidator
•
Porównuje wartości w kontrolce nadzorowanej z kryteriami
narzuconymi
•
Stosowana np. do weryfikacji wpisania ponownie hasła w formularzu
rejestracyjnym
•
Type np. integer, string, data...
•
Operator, GreaterThan, Equals, DataTypeCheck – sprawdza typ
danych
•
ValueToCompare – wartość stała stosowana w kryterium
•
ControlToCompare- zamiast ValueToCompare pobiera wartość do
porównania z wybranej kontrolki
Datamining-Solutions
IV Walidacja danych – RangeValidator
•
Kontroluje zakres danych wejściowych: liczb, znaków lub
dat
•
MinimumValue, MaxiumumValue
•
Atrybut Type: Integer ,String, Currency, Date, Double
•
Wszystkie kontrolki stosowane do walidacji można
grupować poprzez właściwość ValidationGroup - przycisk
wysyłający formularz musi mieć tą samą wartość
ValidationGroup
Datamining-Solutions
IV Walidacja danych – RegularExpressionValidator
•
Kontrolka sprawdzająca wprowadzone dane o
największych możliwościach- korzysta z wyrażeń
regularnych
•
ValidationExpression – wartość wyrażenia
regularnego Np.\d{2}-\d{3} – 02-567 – kod
pocztowy
•
Udogodnienie w VS.NET Edytor Regular
Expression Editor
Datamining-Solutions
IV Walidacja danych – Custom Validator
•
Tworzymy własną metodę sprawdzania poprawności która zwraca true lub false
•
Metoda powinna być zarówno po stronie serwera (downlevel) jak i po stronie klienta
(uplevel)
•
ValidateEmptyText =false- błąd w przypadku braku wartość w kontrolce nadzorowanejbardzo pomocne
•
ServerValidator – metoda po stronie serwera
•
ClientValidationFunction – metoda po stronie klienta
Datamining-Solutions
IV Walidacja danych - przykład
Datamining-Solutions
V. Dane i dostęp do danych
•
Dostęp do bazy bez używania ADO.NET:
• Kontrolka SqlDataSource- można podpiąć pod
kontrolkę dostępu do bazy
• LINQ to SQL- definiuje się zapytanie używając C#
(lub kontrolka LinqDataSource)
• Profile – pozwalają na zapis specyficznych bloków
danych powiązanych z użytkownikiem bez pisania
kodu ADO.NET. Generacja tabel odbywa się przez
aspnet_regsql –A p
Datamining-Solutions
V. Dane i dostęp do danych
•
.Net framework posiada 4 dostawców (providers):
•
•
•
•
•
SQL Server provider (7.0 lub wyższa)
OLE DB provider- np. dostęp do Excela
Oracle provider- 8i lub wyżej
ODBC provider
Klasy pomocne:
•
•
•
•
Connection – tworzy połączenie
Command – do wykonywania komend SQL
DataReader – szybki sposób odczyt danych (read only)
DataAdapter – wypełnia DataSet, potem możliwy
update
Datamining-Solutions
V. Dane i dostęp do danych
•
Wiązanie danych (Data Binding) z kontrolką
• GridView1.DataSource = ds; i
• GridView1.DataMember = "Employees";
lub
• GridView1.DataSource = ds.Tables["Employees"];
i ostatecznie
• GridView1.DataBind();
Datamining-Solutions
VI. Kontrolki dostępu do danych
(Rich Data Controls)
•
Przegląd i przykłady kontrolek wyświetlania
danych
•
•
•
•
•
•
GridView,
DataList,
Repeater,
DetailsView,
FormView
Kontrolka źródeł danych:
• SqlDataSource – rzadko się stosuje, lepiej przez
ADO.NET
•
Przykłady realizowane będą na podstawie bazy
danych NorthWind w MSSQL 2005
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
• GridView wywodzi się z BaseDataBoundControl podobnie jak
AdRotator, DetailsView, FormView, elementy klasy ListControl:
CheckBoxList, RadioButtonList, …
• GridView posiada wiele właściwości:
• AllowPaging, AllowSorting, AutoGenerateColumns,
AutoGenerateDeleteButton, AutoGenerateEditButton,
AutoGenerateSelectButton, DataKeyNames, Datasource,
PageCount, PageSize, …
• Korzystamy albo z klikania w tag inteligentny –wizard, albo kodujemy
w kodzie z treścią.
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
zarządzanie tabelą Customers
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
zarządzanie tabelą Customers
Odzwierciedlenie „wizarda” w kodzie z treścią
-
Tag inteligentny: Enable Paging, Enable
Sorting, Autoformat – w parę minut: gotowa
strona z stronicowaniem i sortowaniem
Datamining-Solutions
VI. Dane i dostęp do danych – GridView
zarządzanie tabelą Customers
Zarządzanie widokiem albo z kodu z treścią, albo „inteligentny tag”, najlepiej
wyłączyć AutoGenerateColumns=false, aby samemu zarządzać
kolumnami z GridView
AutoGenerateColumns=false
Ręczne zarządzanie kolumnami
Datamining-Solutions
VI. Dane i dostęp do danych – GridView
zarządzanie tabelą Customers – insert,
update, delete
Ponowna konfiguracja SqlDataSource dla
GridView i wybranie zakładki advanced:
Enabled select
Enabled edit
Enabled delete
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
zarządzanie tabelą Customers – insert,
update, delete
Przykład zarządzania tabelą Customers:
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
przekazanie parametrów do zapytania select
Cel – Wyświetlić listę zamówień w kontrolce GridView dla wybranego
klienta w innej kontrolce GridView
• Dodajemy nową kontrolkę GridView i podłączamy nową kontrolkę
SqlDataSource z dostepem do tabelki Orders.
• Wybieramy przycisk „where” w oknie dialogowym i dostosowujemy
zapytanie do wyświetlania wszystkich zamówień tylko do wybranego
klienta z pierwszej kontrolki Gridview
Datamining-Solutions
VI. Kontrolki dostępu do danych– GridView
Datamining-Solutions
VI. Kontrolki dostępu do danych– DataList
• Służy do tworzenia list danych na podstawie 7 szablonów:
• Szablony służą do określania zawartości i wyglądu
• EditItemTemplate – dotyczy wyglądu edycji
• ItemTemplate – domyślny wygląd dla zawartości
• SelectedItemTemplate- wygląd zaznaczonego elementu
• FooterTemplate – dotyczy wyglądu stopki
• HeaderTemplate – dotyczy wyglądu nagłówka
• AlternatingItemTemplate – dotyczy itemTemplate
• SeparatorTemplate – wygląd separatorów
Datamining-Solutions
VI. Kontrolki dostępu do danych– DataList
• Zasada podpinania źródła danych identyczna jak poprzednio
• RepeatDirection: Horizontal, Vertical
• RepeatColumns: maksymalna liczba kolumn
Datamining-Solutions
VI. Kontrolki dostępu do danych
DataList Edycja danych –przycisk Edit
•
Należy skopiować sekcję ItemTemplate do EditItemTemplate
•
Zmienić kontrolkę Label na TextBox (find and replace)
•
Dodać przycisk Edit oraz CommandName=„edit”
•
Dodać przycisk Cancel oraz CommandName=„cancel”
•
Dodać przycisk Update oraz CommandName=„update”
•
Dodać obsługę zdarzeń do kontrolki DataList: UpdateCommand, CancelCommand, EditCommand
•
Dodać procedurę modyfikacji danych wraz z parametrami - UpdatedQuery
Datamining-Solutions
VI. Kontrolki dostępu do danych–Repeater
• Kontrolka Repeater jest kontenerem, służącym do przetwarzania
kolejnych pozycji listy danych
• Nie posiada żadnych styli, całe formatowanie spoczywa na
programiście (kod z treścią)
Datamining-Solutions
VI. Kontrolki dostępu do danych–Repeater
•
ItemTemplate – Szablon ten jest konieczny dla kontrolki Repeater. W
wyniku działania tego szablonu każdy wiersz danych wyświetlany jest
oddzielnie.
•
AlternatingItemTemplate – szablon taki sam jak ItemTemplate, ale
przetwarzany jest oddzielie dla każdego wiersza danych. Umożliwia to
określanie ustawień stylu dla poszczególnych wierszy.
•
HeaderTemplate oraz FooterTemplate – szablony te przetwarzają kod
HTML bezpośrednio przed i po wyświetleniu wszystkich wierszy danych.
•
SeparatorTemplate – szablony te przedstawiają elementy znajdujące się
pomiędzy poszczególnymi wierszami danych
•
Szablon AlternatingItemTemplate umieszczony po ItemTemplate umożliwia
formatowanie wierszy dla co drugiego wiersza.
Datamining-Solutions
VI. Kontrolki dostępu do danych–FormView
•
Kontrolka alternatywna wobec DetailsView
•
Całkowicie zbudowana z szablonów
•
Większe możliwości sterowania jej wyglądem i działaniem
•
Musi dostawać z zewnątrz informacje o id rekordu, który ma wyświetlić
•
Nie ma sortowania i stronicowania, ponieważ wyświetla tylko jeden rekord,
bez przełączania na inny –tylko programowo.
Datamining-Solutions
VI. Kontrolki dostępu do danych–DetailsView
•
Wyświetla tylko jeden rekord w danym momencie
•
Pozwala na automatyczne utworzenie przycisków do usuwania, modyfikacji oraz
dodawania rekordów
•
Zasada tworzenia podobna jak w pozostałych przykładach
Datamining-Solutions
Ćwiczenie na zaliczenie
•
Przekształcić formularz podany na zaliczenie części I do postaci
zarządzalnej na podstawie bazy danych z walidacją danych:
•
•
•
•
•
Walidacja danych
Wymienione w formularzu dane wrzucamy do bazy
Dane edytujemy,
Dane usuwamy.
Przykłady przesyłania danych pomiędzy stronami:
- cookies,
- stan widoku,
- stan sesji
- stan aplikacji
-querystring
Przykłady użycia kontrolek dostępu do danych:
GridView,
DataList,
Repeater,
DetailsView,
FormView
Datamining-Solutions