Kontrolki list, kolejność zdarzeń i śledzenie

 

 

 

 

Cele ćwiczenia

 

Śledzenie na poziomie strony, odsyłanie strony (PostBack)

 

  1. Utwórz nową witrynę w lokalnym systemie plików.
  2. Ustaw atrybut Trace="true" strony Default.aspx, co spowoduje, że w przeglądarce u dołu strony powinna pojawić się tabela wyników śledzenia, takie ustawienie powinno być na wszystkich stronach w aplikacji (witrynie).

·         Atrybut można ustawić w kodzie strony zmieniając skrypt w pierwszej linii lub w okienku właściwości (Properties) obiektu DOCUMENT.

  1. Umieść na stronie kontrolki TextBox i Button.
  2. Ustaw atrybut kontrolki tekstowej AutoPostBack = true.
  3. Przetestuj działanie strony, sprawdź czy po zmianie tekstu w kontrolce tekstowej strona jest odsyłana.
  4. Zapoznaj się w przeglądarce ze źródłem strony i porównaj go z kodem w Visual Studio, znajdź kod odpowiedzialny za odesłanie strony po zmianie tekstu w kontrolce tekstowej.
  5. Dodaj obsługę zdarzenia ButtonClick, w funkcji obsługi zdarzenia dodaj polecenie Trace.Warn("Zdarzenie","Kliknięcie przycisku");
  6. Uruchom stronę i znajdź komunikat o kliknięciu w dzienniku śledzenia.

 

Kontrolki list i kolejność zdarzeń

 

Najważniejsze właściwości klasy ListControl

 

Unikalne zdarzenie SelectedIndexCharged zachodzi, gdy zostanie zmieniony wybrany element listy.

 

Najważniejsze metody i właściwości kolekcji Items

Przykład dodawania do listy nowej pozycji.

RadioButtonList1.Items.Add(new ListItem("Tekst", "Value");

Właściwość ListItem
Polecenia

 

  1. Dodaj do witryny nową stronę o nazwie listy.aspx.
  2. Dodaj do strony przycisk i kontrolki:
    1. CheckBoxList,
    2. DropDownList,
    3. ListBox,
    4. RadioButtonList.
  3. Dodaj do kontrolek dowolne pozycje (ListItem) list Items.
  4. Dodaj do kontrolek obsługę zdarzeń SelectedIndexChanged , w funkcjach obsługi zdarzeń umieść polecenia Trace.Warn() wydruku komunikatów identyfikujących zdarzenia.
  5. Uruchom stronę dokonaj zmian w kontrolkach i kliknij przycisk.
  6. Znajdź komunikaty w dzienniku śledzenia i odpowiedz w jakiej kolejności obsługiwane są zdarzenia (czy zgodnie z kolejnością wystąpienia zdarzeń w przeglądarce, czy w kolejności występowania kontrolek w drzewie kontrolek?).
  7. Ustaw właściwość kontrolek AutoPostBack = true i ponownie sprawdź kolejność obsługi zdarzeń.

 

Wykorzystanie wybranej pozycji na liście w kodzie programu

 

  1. Dodaj do strony kontrolki Label a do obsługi zdarzeń SelectedIndexChanged kontrolek list dodaj kod umieszczający w kontrolkach Label informację o wybranych elementach list.
  2. Przetestuj działanie strony.

 

Programowe dodawanie elementów list

  1. Dodaj nowy przycisk, w obsłudze zdarzenia ButonClick umieść kod dodawania pozycji do list kontrolek – metodą Items.Add().
  2. Przetestuj dodawanie pozycji do list kontrolek.

 

Dodawanie pozycji do list z bazy danych

 

  1. Dodaj do aplikacji plik bazy danych

·         Add New Item –> SQL Server Database.

  1. W bazie danych utwórz tabelę pozycje, która będzie zawierała zbiór elementów list.

·         Tabela musi zawierać co najmniej dwie kolumny do przechowywania atrybutów pozycji list Value i Text.

·         Tabela może zawierać dodatkowe kolumny do przechowywania atrybutu Text w różnych wariantach, np. w różnych językach narodowych – coś takiego można wykorzystać lokalizując aplikację.

  1. Wpisz do tabeli kilka pozycji (wierszy).
  2. Na nowej stronie umieść kontrolki list.
  3. Skonfiguruj kontrolki list tak, aby pobierały elementy list z utworzonej tabeli pozycje.
    1. Choose a Data Source –> Select a data Source – > New data source.
    2. Skonfiguruj łańcuch połączenia do utworzonej bazy danych.
    3. Wybierz co najmniej dwie kolumny z tabeli pozycje jako źródło danych.
    4. Wybierz, która kolumna zawiera atrybuty Text, a która atrybuty Value kontrolk.i
  4. Przetestuj działanie kontrolek dla dwóch wartości (true i false) właściwości AppendDataBoundItems – właściwość pozwalająca na dołączenie pozycji z bazy danych do bieżącej listy Items (true – dołączanie,  false – zastępowanie).

 

 

Śledzenie na poziomie aplikacji

 

  1. Skonfiguruj śledzenie na poziomi aplikacji,
    1. przy pomocy narzędzia do administrowania witryną sieci Web ASP.NET Configuration lub
    2. wpisz ręcznie następującą dyrektywę do sekcji <system.web> pliku Web.config:

 

<trace enabled="true" localOnly="false" pageOutput="true" requestLimit="20" />

  1. Uruchom dowolną stronę aplikacji, wykonaj kilka operacji następnie otwórz stronę trace.axd w katalogu głównym aplikacji.
  2. Zapoznaj się ze śladem aplikacji.

 

Kontrolka BulletedList

 

  1. Umieść na stronie kontrolkę BulletedList.
  2. Dodaj do niej listę wartości i przetestuj jej działanie.
  3. Skonfiguruj kontrolkę tak, aby pobierała pozycje listy z tabeli pozycje bazy danych i przetestuj kej działanie.
  4. Określ różnice i podobieństwa BulletedList z pozostałymi kontrolkami list.

 

Wydruk przechwyconego wyjątku w dzienniku śledzenia

 

  1. Umieść na stronie obsługę zdarzenia zawierającą błąd, który będzie przechwycony w bloku instrukcji
    try { kod powodujacy wystąpienie wyjątku }
    catch(Exception ex) { Trace.Warn("Kategoria","
    Komunikat",ex); }.
  2. Dodaj wydruk informacji o błędzie w dzienniku śledzenia instrukcją
    Trace.Warn("Kategoria","Komunikat",wyjątek);
  3. Uruchom stronę spowoduj błąd i znajdź komunikat w dzienniku śledzenia.