Tworzenie ASP.NET Web Form
Przegląd Tworzenie stron typu Web Forms Wykorzystanie kontrolek serwerowych
Tworzenie stron typu Web Forms Co to jest Web Form? Tworzenie Web Form przy pomocy Visual Studio .NET
Co to jest Web Form? Plik z rozszerzeniem .aspx Atrybut Page Body Form <%@ Page Language="vb" Codebehind="WebForm1.aspx.vb" SmartNavigation="true"%> <html> <body ms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> </form> </body> </html>
Tworzenie Web Form przy pomocy Visual Studio .NET Nowa aplikacja ASP.NET Web domyślnie tworzy stronę: WebForm1.aspx Solution Explorer – narzędzie do tworzenia dodatkowych stron Web Forms Upgrade istniejących stron HTML do postaci Web Forms
Wykorzystanie kontrolek typu Server Controls Co to jest kontrolka typu Server Control? Typy kontrolek serwerowych Zapamiętywanie stanu (View State) Demonstracja: Konwersja kontrolek HTML do postaci Server Controls HTML Server Controls Web Server Controls Identyfikacja HTML generowanego przez Web Server Controls Demonstracja: Dodawanie Server Controls do strony Web Form
Co to jest kontrolka typu Server Control? <asp:Button id="Button1" runat="server" Text="Submit"/> Runat="server" Zdarzenie generowane jest na serwerze Zapamiętywany jest stan kontrolek Posiadają wbudowaną funkcjonalność Wspólny model obiektowy Atrybuty Id i Text Tworzą kod HTML zależny od przeglądarki
Typy Server Controls Kontrolki serwerowe HTML Kontrolki serwerowe Web Intrinsic controls Validation controls Rich controls List-bound controls Internet Explorer Web controls
Zapamiętywanie stanu kontrolki (View State) ukryty element formularza Może dotyczyć całej strony Web Form lub wybranego elementu <input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" /> <%@ Page EnableViewState="False" %> <asp:ListBox id="ListName" EnableViewState="true" runat="server"> </asp:ListBox>
Demonstracja: Konwersja kontrolek HTML do postaci Server Controls Dodawanie kontrolek typu Web server Korzystanie z mechanizmu SmartNavigation
HTML Server Controls Oparte o elementy HTML Zdefiniowane w przestrzeni nazw System.Web.UI.HtmlControls <input type="text" id="txtName" runat="server" />
Web Server Controls Zdefiniowane w przestrzeni nazw System.Web.UI.WebControls Kontrola syntaktyki Generują kod HTML <asp:TextBox id="TextBox1" runat="server">Text_to_Display </asp:TextBox> <input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/>
Wybór właściwego typu kontrolek Używaj HTML Server Controls jeżeli: Używaj Web Server Controls jeżeli: Preferujesz model obiektów języka HTML Preferujesz programowanie w języku HTML Visual Basic lub C# Chcesz szybko dodać funkcjonalność ASP.NET do istniejących stron HTML YTworzona strona może być wykorzystywana przez wiele typów przeglądarek Kontrolka współdziała ze skryptami serwerowymi i klienckimi Potrzebuje specyficznej funkcjonalności takiej jak kalendarz czy rotator Pojemność kanału transmisji jest ograniczona Pojemność kanału transmisji nie jest problemem
Moduł 5: Tworzenie kodu Microsoft ASP.NET Web Form
Przegląd Wykorzystanie mechanizmu Code-Behind Pages Dodawanie procedur obsługujących zdarzenia generowane przez Web Server Controls Wykorzystanie zdarzeń strony (Page Events)
Wykorzystanie mechanizmu Code-Behind Pages Jak wprowadzać kod źródłowy programu? Tworzenie kodu Inline Czym jest mechanizm Code-Behind Pages? Jak działa mechanizm Code-Behind Pages?
Jak wprowadzać kod źródłowy programu? Trzy metody dodawania kodu źródłowego: file as content (mixed) inline code – umieszczanie kodu w osobnej sekcji w pliku code-behind pages – umieszczanie kodu w osobnym pliku Mechanizm Code-behind jest stosowany domyślnie przez Visual Studio .NET
Tworzenie kodu Inline Kod źródłowy programu i treści w tym samym pliku Osobna sekcja dla kodu i osobna dla HTML <HTML> <asp:Button id="btn" runat="server"/> </HTML> <SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs) Handles btn.Click ... End Sub </SCRIPT> <HTML> <asp:Button id="btn" runat="server"/> </HTML> <SCRIPT Language="c#" runat="server"> private void btn_Click(object sender, System.EventArgs e) { . . . } </SCRIPT>
Czym jest mechanizm Code-Behind Pages? Odseparowanie kodu programu od treści strony Programiści i projektanci interfejsu użytkownika mogą pracować niezależnie od siebie Jeden plik Osobne pliki kod <tags> kod <tags> Form1.aspx.vb lub Form1.aspx.cs Form1.aspx Form1.aspx
Jak działa mechanizm Code-Behind Pages? Tworzone są osobne pliki z definicją interfejsu użytkownika i osobny dla logiki jego działania Dyrektywa @ Page łączy te pliki w logiczną całość Korzystamy z kompilacji wstępnej bądź JIT Page1.aspx <% @ Page Language="c#" Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %> Page1.aspx.cs public class WebForm1 { private void cmd1_Click() { … }
Tworzenie procedury obsługi zdarzenia dla kontrolki typu Web Server Controls Co to jest procedura obsługi zdarzenia? Wykorzystanie zdarzeń Procedura obsługi zdarzenia po stronie klienta Procedura obsługi zdarzenia po stronie serwera Multimedia: Zdarzenia typu Client-Side i Server-Side Tworzenie procedur obsługi zdarzenia Interakcja pomiędzy kontrolkami
Co to jest procedura obsługi zdarzenia? Działanie wykonywane w odpowiedzi na interakcję użytkownika z kontrolkami na stronie
Procedury obsługi zdarzeń typu Client-Side Używane zwykle jedynie z kontrolkami HTML Interpretowane przez przeglądarkę po stronie klienta Brak dostępu do zasobów serwera Korzystają z <SCRIPT language="language"> .HTM Pages Internet
Procedury obsługi zdarzeń typu Server-Side Wykorzystywane przez kontrolki serwerowe HTML i serwerowe Dostęp do zasobów serwera Korzystają z <SCRIPT language="vb" runat="server"> lub <SCRIPT language=“cs" runat="server"> .ASPX Pages Internet
Tworzenie procedur obsługi zdarzenia Visual Studio .NET deklaruje zmienne i tworzy szablony procedur Private Sub cmd1_Click(ByVal s As System.Object, _ ByVal e As System.EventArgs) Handles cmd1.Click private void cmd1_Click(object s, System.EventArgs e)
Tworzenie procedur obsługi zdarzenia Stworzenie Web Form przy pomocy Visual Studio .NET Dodanie kontrolek do Web Form Dodanie procedury obsługi zdarzenia (double-click) Uruchomienie formularza (Build and Browse)
Interakcja pomiędzy kontrolkami Odczyt właściwości kontrolki serwerowej Modyfikacja innych kontrolek typu Web server controls strGreeting = "Hello " & txtName.Text strGreeting = "Hello " + txtName.Text; lblGreeting.Text = "new text" lblGreeting.Text = "new text";
Korzystanie ze zdarzeń Kolejność zdarzeń Multimedia: Proces PostBack Obsługa zdarzeń Obsługa zdarzenia Page.IsPostback Połączenie ze sobą dwóch kontrolek
Kolejność zdarzeń Page_Init Page_Load Textbox1_Changed Button1_Click Control events Change Events Textbox1_Changed Action Events Button1_Click Page_Unload Page is disposed
Multimedia: Proces Postback
Obsługa zdarzeń
Obsługa zdarzenia Page.IsPostback Page_Load jest uruchamiane przez każde żądanie strony Pozwala wykonać logikę pod pewnym warunkiem Tylko pierwsze odwołanie do strony private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { // executes only on initial page load } //this code executes on every request Private Sub Page_Load(ByVal s As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load If Not Page.IsPostBack Then 'executes only on initial page load End If 'this code executes on every request End Sub
Demonstracja dodawania obsługi zdarzeń
Połączenie ze sobą dwóch kontrolek Połączenie ze sobą dwóch kontrolek pozwala na przekazanie wybranej wartości z listy Data binding <asp:DropDownList id="lstOccupation" autoPostBack="True" runat="server" /> You selected: <asp:Label id="lblSelectedValue" Text="<%# lstOccupation.SelectedItem.Text %>" runat="server" /> private void Page_Load(object sender, System.EventArgs e) { lblSelectedValue.DataBind(); } Sub Page_Load(s As Object, e As EventArgs) Handles MyBase.Load lblSelectedValue.DataBind() End Sub
Demonstracja: Połączenie ze sobą dwóch kontrolek Połączenie kontrolki Label z ListBox
Demonstracja: Połączenie ze sobą dwóch kontrolek
Na dzisiaj koniec Dziękuję za uwagę. Z tydzień ciąg dalszy walki z ASP.NET