Podstawowe kontrolki serwerowe ASP.NET – obsługa zdarzeń

 

 

 

 

Cele ćwiczenia

 

Dodawanie z wykorzystaniem kontrolek ASP.NET

 

  1. Na stronie umieść prosty program dodający, po kliknięciu przycisku, dwie liczby umieszczone w kontrolkach tekstowych, wynik powinien się pojawić w trzeciej kontrolce tekstowej. W aplikacji należy zastosować kontrolki ASP.NET.
  2. Na listingu 1 umieszczono kod obsługi zdarzenia dodający liczby zawarte w kontrolkach TextBox1 i Text2 i umieszcza wynik w TexBoxt3.

 

Listing 1. kod obsługi zdarzenia dodający liczby zawarte w kontrolkach TextBox1 i TextBox2 i umieszcza wynik w TextBox3.

 

protected void Button1_Click(object sender, EventArgs e)

{

    TextBox3.Text = (Convert.ToDouble(TextBox1.Text) + Convert.ToDouble(TextBox2.Text)).ToString();

}

 

  1. Przetestuj działanie strony.
  2. Zapoznaj się w przeglądarce ze źródłem strony i porównaj z kodem w Visual Studio.

 

Wydruk parametrów żądania w tabeli

 

  1. Umieść na stronie z poprzednim zadaniem standardową kontrolkę ASP.NET Table Table1.
  2. Dodaj kod obsługi zdarzenia Page_Load drukujący parametry żądania w tabeli Table1.

 

Listing 2. Wydruk parametrów żądania w tabeli Table1

 

// Wydruk parametrów żądania w tabeli Table1

        Table1.BorderStyle = BorderStyle.Double;

        Table1.BackColor = System.Drawing.Color.LightGray;

        Table1.GridLines = GridLines.Both;

        TableRow y;

        TableCell x;

        y = new TableRow();   // wiersz nagłóweka tabeli

        y.BackColor = System.Drawing.Color.Gray;

 

        x = new TableCell();

        x.Text = "<span style=\"font-size: large\">Nr</span>";

        y.Cells.Add(x);

 

        x = new TableCell();

        x.Text = "<span style=\"font-size: large\">Nazwa</span>";

        x.HorizontalAlign = HorizontalAlign.Center;

        y.Cells.Add(x);

 

        x = new TableCell();

        x.Text = "<span style=\"font-size: large\">Wartość</span>";

        x.HorizontalAlign = HorizontalAlign.Center;

        y.Cells.Add(x);

        Table1.Rows.Add(y); // dodane nagłówka

 

        for (int i = 0; i < Request.Params.Count; i++)

        {

            y = new TableRow();

            x = new TableCell();

            x.Text = i.ToString();

            y.Cells.Add(x);

            x = new TableCell();

            x.Text = Request.Params.GetKey(i);

            y.Cells.Add(x);

            x = new TableCell();

            x.Text = Request.Params[i];

            y.Cells.Add(x);

            Table1.Rows.Add(y);

        }        

 

 

  1. Przetestuj stronę i zapoznaj się z wydrukowanymi parametrami żądania oraz ze źródłem strony w przeglądarce.
  2. Dodaj do strony skrypt lub kod w metodzie Page_Load drukujący komunikat o trybie otwarcia strony, listing 3.

 

Listing 3. Kod skryptu umieszczającego komunikat o trybie otwarcia strony

 

<%

    if (Page.IsPostBack)

        Response.Write("Postback");

    else

        Response.Write("Pierwsze wywołanie strony");   

%>

  1. Dodaj do strony przycisk, który powoduje przeładowanie strony i przetestuj jej działanie.
  2. Spróbuj umieścić komunikat o trybie otwarcia strony w kontrolce typu Label.

 

Program kalkulatora z wykorzystaniem kontrolek ASP.NET

 

  1. Na nowej stronie utwórz aplikację kalkulatora.
  2. Aplikacja powinna zawierać
    1. 10 przycisków numerycznych,
    2. 4 przyciski działań arytmetycznych,
    3. przycisk „=”,
    4. jeden wyświetlacz, tak jak kalkulator.
  3. Kontrolki należy umieść na panelu.
  4. Do przechowywania stanu kalkulatora należy dodać kontrolki, które w trakcie testowania programu kalkulatora będą widoczne i ukryte po zakończeniu.
  5. Do obsługi wielu zdarzeń można użyć jednej funkcji np. przedstawionej na listingu 4.

 

Listing 4. Kod obsługi zdarzenia, który rozpoznaje napis na przycisku i na jego podstawie albo dopisuje odpowiednią cyfrę do wyświetlacza, albo rozpoczyna jedno z czterech działań arytmetycznych.

 

protected void Button_Cyfra_Click(object sender, EventArgs e)

{

  Button x = (Button)sender;

 

  switch (x.Text)

  {

    case "+":

    case "-":

    case "*":

    case "/":

      TextBoxX.Text = TextBox1.Text;

      TextBox1.Text = "0";

      TextBoxOperacja.Text = x.Text;

      break;

    default:

      TextBox1.Text = Convert.ToDouble(TextBox1.Text + x.Text).ToString();

      break;

  }

}

 

  1. W celu obserwacji parametrów żądania w trakcie testowania aplikacji
    1. dodaj do strony kontrolkę Table1,
    2. w funkcji obsługi zdarzenia Page_Load umieść kod z listingu 2 drukujący parametry żądania, w tabeli Table1.
  2. Przetestuj działanie strony, zapoznając się z parametrami żądania i źródłem strony w przeglądarce.

 

Dynamiczne tworzenie tabeli i wypełnienie jej kontrolkami

 

  1. Umieść na stronie standardową kontrolkę ASP.NET Table i przycisk.
  2. W funkcji obsługi zdarzenia kliknięcia przycisku umieść kod dodający komórki do tabeli i umieszczający w komórkach kontrolki tekstowe – listing 5.

 

Listing 5. Dynamiczne wypełnianie tabeli Table1 komórkami zawierającymi nienazwane kontrolki tekstowe

 

        int lw = Convert.ToInt16(TextBox1.Text);

        int lk = Convert.ToInt16(TextBox2.Text);

        int i, k;

        for (i = 0; i < lw; i++)

        {

            TableRow y = new TableRow();

            for (k = 0; k < lk; k++)

            {

                TableCell x = new TableCell();

                y.Cells.Add(x);

                x.Controls.Add(new TextBox());

            }

            Table1.Rows.Add(y);

        }

 

  1. Dodaj kolejny przycisk i sprawdź, czy tabela zniknie po przeładowaniu strony.
  2. Przemieść kod wypełniania tabeli do metody  Page_Load i sprawdź czy tabela zniknie po przeładowaniu strony.
  3. Dodaj do strony przycisk wypełniający kontrolki tekstowe kolejnymi liczbami naturalnymi.

 

Listing 6. Wypełnianie komórek tekstowych w tabeli Table1 napisem Ala ma kota

 

for (int i = 0; i < Table1.Rows.Count; i++)

    for (int k = 0; k < Table1.Rows[i].Cells.Count; k++)

       ((TextBox)Table1.Rows[i].Cells[k].Controls[0]).Text = "Ala ma kota";

 

  1. Dodaj do strony wydruk parametrów żądania – listing 2.
  2. Sprawdź czy nienazwane kontrolki tekstowe przemieszczają się między komórkami tabeli, gdy zmienia się liczba kolumn i wierszy tabeli.
  3. Przetestuj działanie strony, zapoznając się z parametrami żądania i źródłem strony w przeglądarce.
  4. Do kodu z listingu 5 dodaj nadawanie identyfikatorów kontrolkom tekstowym.

 

TextBox TT = new TextBox();

TT.ID = "Tekst_wiersz" + i.ToString() + "kom" + k.ToString();

x.Controls.Add(TT);

 

  1. Sprawdź czy nazwane kontrolki tekstowe przemieszczają się między komórkami tabeli, gdy zmienia się liczba kolumn i wierszy tabeli.

Projekt

 

  1. Aplikacja kalkulatora.