Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Jarosław Kurek WZIM SGGW
Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Wzorce.
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Wprowadzenie do języka skryptowego PHP
Bezpieczeństwo aplikacji WWW
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
MS Access 2003 Kwerendy Paweł Górczyński.
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE PODSTAWOWE.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
.NET - możliwości Jarosław Balcer & Jan Góralski.
Tworzenie ASP.NET Web Form
Arkadiusz Twardoń ZTiPSK
Aplikacje ASP.NET Arkadiusz Twardoń ZTiPSK
Programowanie w środowiskach zintegrowanych wykład 1 PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane.
Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Zarządzanie stanem aplikacji Mechanizm Sesji
Technologia ASP.NET.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Linux - polecenia.
ANNA BANIEWSKA SYLWIA FILUŚ
Lokalizacja i Globalizacja na witrynie w Visual Web Developer 2008 (ASP.Net) Daniel Literski.
Instrukcja obsługi systemu CMS Przygotowanie
Prezentacja i szkolenie
Arkadiusz Twardoń ZTiPSK
ASP BAZY. 2.2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika ODBC.
ASP.NET Dynamic Data Jakub Binkowski Jakub Binkowski Visual C# MVP
Aplikacje bazodanowe ADO.NET PHP i MySQL
Robimy własne notatki - Notatnik
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 8.
MICROSOFT Access TWORZENIE MAKR
18/11/ Języki programowania 1 Piotr Górczyński Kontrolki.
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Wstęp do ASP.NET Arkadiusz Popa Serwery Aplikacji

Projektowanie stron WWW
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Uprawnienia w Windows Server
Opracowanie mgr Karol Adamczyk
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Komendy SQL do pracy z danymi
Elementy JavaServer Pages. Dyrektywy JSP  Elementy dyrektyw używane są do określania tej informacji o stronie, która pozostaje bez zmiany między żądaniami.
.NET i Bazy Danych Projekt: Wadim Grasza.
Ms Access Raporty Marzena Nowakowska WZiMK, PŚk
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Aplikacje Baz Danych ASP.NET
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
ASP.NET Tworzenie i zarządzanie wyglądem aplikacji, tworzenie mapy witryny. Kontrolki nawigacyjne.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Wyższa Szkoła Bankowa, Poznań, dr inż. mirosław Loręcki
SQL Server Analysis Services Action!
T. 18. E Proces DGA - Działania (operatorka).
PODSTAWOWE ZARZĄDZANIE KOMPUTERAMI Z SYSTEMEM WINDOWS
AudaPad / AudaShare AudaShare PRO (2.8)
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5
Aplikacje i usługi internetowe
Zapis prezentacji:

Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5 22/03/2017 Zaawansowane aplikacje internetowe – ASP.NET 2.0 / 3.5 Prowadzący: Jarosław Kurek kurekj@iem.pw.edu.pl Jarosław Kurek Politechnika Warszawska 2007

Agenda I Przypomnienie architektury .NET 22/03/2017 I Przypomnienie architektury .NET II Podstawy witryny internetowej III Walidacja IV Dane i dostęp do danych Jarosław Kurek Politechnika Warszawska 2007

I. Architektura platformy .NET

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)

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

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\Temporary ASP.NET Files

Framework 4.0 (wkrótce) Więcej na posterze pod linkiem PlakatNETFX4.pdf

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)

II. Podstawy witryny internetowej ASP.NET 2.0 Struktura klasy Page, Kod z treścią oraz kod ukryty (separacja warstw), Metody przekierowania do innej strony Metody przesyłanie danych pomiędzy stronami, Automatyczny postback (autopostback) Cykl życiowy strony,

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

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:

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

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

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

2. Kod z treścią oraz kod ukryty Dwa podejścia pisania stron ASP.NET: Tylko jeden plik *.aspx oraz …

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

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ść

2. Metody przekierowania Różnica pomiędzy Response.Redirect i Server.Transfer

4.Metody przesyłania danych pomiędzy stronami Stan Widoku QueryString Cookies Typ danych Wszystkie typy danych (serial.) Ł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 Typowe użycie Transmisja zmiennych do drugiej strony Wysyłanie np. ID produktu Personalizacja dla stron

4.Metody przesyłanie danych pomiędzy stronami Stan sesji Stan Aplikacji Typ 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

4.Metody przesyłanie danych pomiędzy stronami Przykład zapisu wartości kontrolek za pomocą stanu widoku - ViewState

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] !!!

4.Metody przesyłanie danych pomiędzy stronami cd. Przykład przekazania zmiennych za pomocą metody GET - QueryString Page.aspx Test.aspx

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

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

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

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

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 class1 Ustawieni trybu W web.config Obsługa zapisu i odtworzenie Obiektu klasy class1

4.Metody przesyłanie danych pomiędzy stronami –stan sesji Wynik kodu z poprzedniego slajdu: Wymuszony brak obsługi cookies

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

4. Metody przesyłanie danych pomiędzy stronami –stan aplikacji Przykład użycia - licznik żądań Niepoprawny kod Poprawny kod

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

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

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="" />

6. Cykl życiowy strony

III Znajdowanie i usuwanie błędów 1. Śledzenie wykonywania programu 2. Debugowanie programu 3. Obsługa błędów

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

III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu na poziomie strony

III Znajdowanie i usuwanie błędów -Śledzenie wykonywania programu na poziomie aplikacji

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

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

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”:

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:

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

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

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

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

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

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

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 nadzorowanej- bardzo pomocne ServerValidator – metoda po stronie serwera ClientValidationFunction – metoda po stronie klienta

IV Walidacja danych - przykład

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

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

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();

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

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ą.

VI. Kontrolki dostępu do danych– GridView zarządzanie tabelą Customers

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

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

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

Przykład zarządzania tabelą Customers: VI. Kontrolki dostępu do danych– GridView zarządzanie tabelą Customers – insert, update, delete Przykład zarządzania tabelą Customers:

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

VI. Kontrolki dostępu do danych– GridView

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

VI. Kontrolki dostępu do danych– DataList Zasada podpinania źródła danych identyczna jak poprzednio RepeatDirection: Horizontal, Vertical RepeatColumns: maksymalna liczba kolumn

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

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ą)

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.

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.

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

Ć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