380 likes | 554 Views
Tworzenie ASP.NET Web Form. Przegląd. Tworzenie stron typu Web Forms Wykorzystanie kontrolek serwerowych. Tworzenie stron typu Web Form s. 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
E N D
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 pomocyVisual 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 typuServer 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 typuServer 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 • AtrybutyIdiText • 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) • ukrytyelement formularza • Może dotyczyć całej strony Web Form lub wybranego elementu <%@ Page EnableViewState="False" %> <asp:ListBox id="ListName" EnableViewState="true" runat="server"> </asp:ListBox> <input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" />
Demonstracja: Konwersja kontrolek HTML do postaci Server Controls • Dodawaniekontrolek 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 nazwSystem.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
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.cs public class WebForm1 { private void cmd1_Click() { … } } Page1.aspx <% @ Page Language="c#"Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %>
Tworzenie procedury obsługi zdarzenia dlakontrolki 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 is disposed Page_Init Page_Load Control events Textbox1_Changed Change Events Button1_Click Action Events Page_Unload
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
Połączenie ze sobą dwóch kontrolek • Połączenie ze sobą dwóch kontrolekpozwala 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
Na dzisiaj koniec • Dziękuję za uwagę. • Z tydzień ciąg dalszy walki z ASP.NET