Kurs WWW
Transkrypt
Kurs WWW
Kurs WWW ASP.NET Paweł Rajba [email protected] http://pawel.ii.uni.wroc.pl/ Wprowadzenie Z czego składa się aplikacja w ASP.NET? ASP.NET Web Forms (.aspx) ASP.NET Web services (.asmx) Klas, stron ,,code-behind'' (.vb lub .cs) Klas globalnych aplikacji (.asax) Pliku Web.config Wszystko inne typu strony HTML, arkusze CSS, itp. Kurs WWW -1- Copyright © Paweł Rajba Wprowadzenie Po kompilacji dochodzą pliki Project Assembly files (.dll) skompilowane pliki typu ,,code-behind'' pliki są umieszczane w katalogu /bin serwisu dla aplikacji tworzony jest jeden taki plik o nazwie NazwaProjektu.dll AssemblyInfo.vb lub AssemblyInfo.cs zawierają informacje o skompilowanym kodzie, typu wersja, atrybuty, itp. Kurs WWW -2- Copyright © Paweł Rajba Wprowadzenie Gdzie to wszystko jest? Kody aplikacji: tam gdzie utworzyliśmy solution i projekty Gotowa aplikacja: C:\Inetpub\wwwroot\Aplikacja\ dostępna pod adresem http://localhost/Aplikacja/ Kurs WWW -3- Copyright © Paweł Rajba Pierwszy przykład Tworzymy aplikację ASP.NET Web Application Dokładamy tabelkę (Table), dodajemy po dwa wiersze i kolumny, formatujemy Dodajemy ListBox, wstawiamy cztery pozycje i formatujemy Dodajemy Button i formatujemy Kompilujemy projekt, odpalamy IE i oglądamy źródło HTML Zmieniamy pageLayout na Flow i jeszcze raz Kurs WWW -4- Copyright © Paweł Rajba Pierwszy przykład Tworzymy nowy projekt, wybieramy Class Library (dajemy Add to Solution) Przeklejamy kod z pliku p1\ClassLibrary.cs Wracamy do WebForm, dodajemy referencje do ClassLibrary Do strony HTML dodajemy kod z pliku p1\KodHTML.aspx Kompilujemy i odpalamy IE Kurs WWW -5- Copyright © Paweł Rajba Pierwszy przykład Przechodzimy do pliku WebForm.aspx.cs, do metody Page_Load i wstawiamy kod Response.Write("<!-- Tu jest początek strony -->"); Kurs WWW -6- Copyright © Paweł Rajba WebForm Co to jest? Jest to kombinacja HTMLa, kodu w C# (albo innym języku) i kontrolek Jest przetwarzany po stronie serwera i generuje kod HTML, który jest wysyłany do klienta WebForms mają rozszerzenie .aspx WebForms może się składać z dwóch plików: aspx – właściwy form aspx.cs – tzw. plik code-behind, zawiera logikę wpierającą form właściwy (będzie o tym później) Kurs WWW -7- Copyright © Paweł Rajba WebForm Atrybuty strony Składnia <%@ Page atrybuty > Atrybuty na początek Language="cs"|"vb" (języków jest oczywiście więcej) Codebehind="cos.aspx.cs" ClientTarget="downlevel" – dla starszych przeglądarek do poprzedniego przykładu dodać i zobaczyć różnice w wynikowym HTMLu ErrorPage="adres strony w razie błędu" Kurs WWW -8- Copyright © Paweł Rajba WebForm Atrybuty treści <body> pageLayout – layout strony Wartości FlowLayout GridLayout Objawia się jako ms_positioning pozostałe atrybuty, np. bodyColor, ... Kurs WWW -9- Copyright © Paweł Rajba WebForm Atrybuty formularza id – identyfikator method – to co poprzednio runat=”server” – sedno webforma można w takim formularzu osadzać kontrolki przetwarzane po stronie serwera inna wartość niż “server” sprawi, że formularz będzie traktowany jako zwykły formularz HTML dane z takiego formularza są wysyłane z powrotem do strony, która go utworzyła Kurs WWW - 10 - Copyright © Paweł Rajba WebForm Kontrolki po stronie serwera są to obiekty osadzane w kodzie strony reprezentują pewną funkcjonalność, po przetworzeniu zostaną zamienione na odpowiedni kod HTML i wysłane do klienta kolejną cechą WebForma jest automatyczne dodawanie kontrolki reprezentującej stan formularza funkcjonalność kontrolek jest oprogramowywana w tzw. codebehind, np. to co się stanie po kliknięciu w przycisk lub listę jest obsługiwane przez mechanizm zdarzeń Kurs WWW - 11 - Copyright © Paweł Rajba WebForm Rodzaje kontrolek Zwykłe kontrolki HTML Kontrolki po stronie serwera Zwykłe kontrolki HTML z atrybutem runat=”server” Intrinsic controls – są to kontrolki odpowiadające zwykłym kontrolkom HTML, np. button, listBox, Validation controls – kontrolki pozwalające weryfikować dane wprowadzone przez użytkownika Rich controls – bardziej wypasione kontrolki, generujące czasami nawet baaardzo dużo kodu, np. Calendar Kurs WWW - 12 - Copyright © Paweł Rajba WebForm Rodzaje kontrolek Kontrolki po stronie serwera List-bound controls – kontrolki do prezentacji, sortowania, itd. danych z np. bazy danych Internet Explorer Web controls – złożone kontrolki obsługiwane przez IE (i chyba tylko IE) jak np. MultiPage, Toolbar, czy TreeView Kurs WWW - 13 - Copyright © Paweł Rajba WebForm Stan formularza stan kontrolek (pary nazwa-wartość) są przekazywane przez automatycznie generowane pole ukryte __VIEWSTATE ponieważ przy dużych formularzach może to spowolnić działanie, możliwe jest nastepujące rozw. wyłączyć tworzenie stanu dla całego formularza: <%@ Page EnableViewState=”false” %> natomiast włączyć dla wybranych kontrolek, których stan chcemy przekazywać pomiędzy kolejnymi żądaniami <asp:ListBox id=”ListName” EnableViewState=”true” runat=”server”></asp:ListBox> Kurs WWW - 14 - Copyright © Paweł Rajba WebForm Przykładowe kontrolki Intrinsic controls <asp:button> <asp:checkbox> <asp:hyperlink> <asp:image> <asp:imagebutton> <asp:label> <asp:listbox> <asp:panel> <asp:table> <asp:textbox> Kurs WWW <input type=”submit”> <input type=”checkbox”> <a href=”...”></a> <img src=”...”> <input type=”image”> <span></span> <select></select> <div></div> <table</table> <input type=”text”> - 15 - Copyright © Paweł Rajba WebForm Przykładowe kontrolki Validation controls CompareValidator – dwa wskazane pola muszą mieć takie same wartości CustomValidator – wartość musi spełniać zadany warunek np. musi być parzysta RangeValidator – wartość musi być w podanym zakresie RegularExpressionValidator – wartość musi się dopasowywać do podanego wyrażenia regularnego RequiredFieldValidator – wartość pola wymagana ValidationSummary – podsumowanie o błędach wypełnienia formularza Kurs WWW - 16 - Copyright © Paweł Rajba WebForm Przykładowe kontrolki Rich controls Calendar – tworzy ładny kalendarz List-bound controls CheckBoxList – tworzy listę checkboxów Repeater – tworzy zadany element dla każdego wiersza zbioru danych DataList – podobny do repeatera, ale z bardziej rozbudowanym formatowanie (można dane prezentować w postaci tabelki) DataGrid – tworzy tabelkę z danymi Kurs WWW - 17 - Copyright © Paweł Rajba WebForm Używanie kontrolek do weryfikacji ,,inputu'' Składnia ogólna <asp:TypWeryfikatora id=”idWeryfikatora” runat=”server” ControlToValidate=”kontrolkaDoWeryfikacji” ErrorMessage=”tekstPrzyPodsumowaniu” Display=”static | dynamic | none” Text=”tekstWyswietlanyPrzezKontrolke” EnableClientScript=”true | false”> </asp:TypWeryfikatora> Kurs WWW - 18 - Copyright © Paweł Rajba WebForm Używanie kontrolek do weryfikacji ,,inputu'' RequiredFieldValidator używamy, jeśli chcemy, żeby użytkownik wypełnił jakieś pola można użyć dodatkowej opcji InitialValue, która sprawi, że niedopuszczalną wartością będzie nie ciąg pusty, ale ta właśnie wartość można też użyć dwóch takich kontrolek jedna blokuje wartość pustą druga blokuje jakąś InitialValue Kurs WWW - 19 - Copyright © Paweł Rajba WebForm Używanie kontrolek do weryfikacji ,,inputu'' CompareValidator pozwala porównać kontrolkę z wartością, lub dwie kontrolki dodatkowe atrybuty ValueToCompare – porównanie będzie do tej wartości ControlToCompare – porównanie będzie ze wskazaną kontrolką (w przypadku ustawieniu obu wartości, ta będzie ważniejsza) Type – określamy jakiego typu powinny być wprowadzone dane (wybranie typu ma znaczenie, jeśli operator jest DataTypeCheck) Operator – określamy rodzaj porównania Kurs WWW - 20 - Copyright © Paweł Rajba WebForm Używanie kontrolek do weryfikacji ,,inputu'' RangeValidator pozwala wymusić, żeby wartości były z podanego zakresu dodatkowe atrybuty MinimumValue – określa minimalną wartość dla liczb i minimalną długość napisu dla napisów MaximumValue – analogicznie do MinimumValue Type – określamy typ Kurs WWW - 21 - Copyright © Paweł Rajba WebForm Używanie kontrolek do weryfikacji ,,inputu'' RegularExpressionValidator sprawdza, czy wartość dopasowuje się do zadanego wyrażenia regularnego wyrażenie regularne można konstruować za pomocą litery, cyfry ? – powtórzenie 0 lub 1 raz * – powtórzenie 0 lub więcej razy + – powtórzenie 1 lub więc raz [0-20] – zakresy {n} – powtórzenie dokładnie n razy | – alternatywa \w – litera, \d – cyfra, \. – kropka Kurs WWW - 22 - Copyright © Paweł Rajba Przykład Tworzymy kontrolki Imię TextBox Nazwisko TextBox Data Urodzenia TextBox Województwo DropDownList Login TextBox Hasło TextBox (tutaj TextMode=Password) Powtórz hasło TextBox Tworzymy odpowiednie weryfikatory Kurs WWW - 23 - Copyright © Paweł Rajba Kod aplikacji Kod do WebForma można dodawać jako mieszankę HTML i kodu jako kod w znacznikach SCRIPT, ale również w dokumencie HTML osobnym pliku zwanych codebehind page Przykładowy kod w pliku HTML <asp:Button id=”btn” runat=”server” /> <SCRIPT Language=”c#” runat=”server”> private void btn_Click(object sender, System.EventaArgs e) { ... } Kurs WWW - 24 - Copyright © Paweł Rajba Kod aplikacji Po co jest codebehind page? każdy WebForm może mieć taką stronę pozwala oddzielić kod od designu strona taka może być tylko w jednym wybranym języku Powiązanie WebForm z codebehind poprzez Codebehind="WebForm2.aspx.cs" Inherits="PierwszyPrzyklad.WebForm2" pozwala na dostęp do wszystkich klas i obiektów z codebehind page Kurs WWW - 25 - Copyright © Paweł Rajba Kod aplikacji ... Kurs WWW - 26 - Copyright © Paweł Rajba