Ustawiono atrybut strony Trace="true", co powoduje, że u dołu strony powinna się pojawić tabela śledzenia, zawierająca
Umieszczone na stronie kontrolki tekstowe TextBox1: i TextBox2: oraz służą do generowania zdarzeń, których ślad można znaleźć w dzienniku śledzenia. Tylko kliknięcie przycisku powoduje odesłanie strony na serwer - PostBack. AutoPostBack dla kontrolki TextBox1 można ustawić zaznaczając: TextBox1.AutoPostBack.
Obsługa zdarzeń polega na umieszczeniu komunikatu o zdarzeniu w dzienniku śledzenia za pomocą metody Trace.Warn. Dla kontrolki TextBox1 obsługiwane są zdarzenia ontextchanged, oninit, onload, onprerender, onunload, dla TextBox2 obsługiwane jest zdarzenie ontextchanged, ponadto obsługiwane jest kliknięcie przycisku i PageLoad.
Po kolejności wpisów do dziennika śledzenia można się zorientować w jakiej kolejności zachodzą zdarzenia. Jeśli po odesłaniu strony serwer wykryje więcej niż jedno zdarzenie danego typu, zdarzenia są obsługiwane według kolejności kontrolek w drzewie
Listing kodu obsługi zdarzeń na stronie.
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) Trace.Warn("Zdarzenie", "Powtórne wywołanie strony (PostBack)"); else Trace.Warn("Zdarzenie", "Pierwsze wywołanie strony"); } protected void Button1_Click(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Kliknięcie przycisku"); } protected void TextBox1_TextChanged(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Zmiana tekstu 1"); } protected void TextBox2_TextChanged(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Zmiana tekstu 2"); } protected void TextBox1_Init(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Tekst 1 Init"); } protected void TextBox1_Load(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Tekst 1 Load"); } protected void TextBox1_PreRender(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Tekst 1 PreRender"); } protected void TextBox1_Unload(object sender, EventArgs e) { Trace.Warn("Zdarzenie", "Tekst 1 Unload"); }