Omówienie kontrolek serwera ASP.NET

W tym artykule przedstawiono kontrolki serwera ASP.NET, takie jak kontrolki serwera HTML, kontrolki serwera sieci Web, kontrolki listy itp.

Oryginalna wersja produktu: ASP.NET
Oryginalny numer KB: 306459

W tym artykule opisano następujące przestrzenie nazw biblioteki klas microsoft .NET Framework:

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

Kontrolki serwera w strukturze stron ASP.NET

Struktura stron ASP.NET zawiera szereg wbudowanych kontrolek serwera, które zostały zaprojektowane tak, aby zapewnić bardziej ustrukturyzowany model programowania dla Sieci Web. Te kontrolki zapewniają następujące funkcje:

  • Automatyczne zarządzanie stanem.
  • Prosty dostęp do wartości obiektów bez konieczności używania obiektu Request .
  • Możliwość reagowania na zdarzenia w kodzie po stronie serwera w celu tworzenia aplikacji o lepszej strukturze.
  • Typowe podejście do tworzenia interfejsów użytkownika dla stron internetowych.
  • Dane wyjściowe są automatycznie dostosowywane na podstawie możliwości przeglądarki.

Oprócz wbudowanych kontrolek struktura stron ASP.NET zapewnia również możliwość tworzenia kontrolek użytkownika i kontrolek niestandardowych. Kontrolki użytkownika i kontrolki niestandardowe mogą rozszerzać i rozszerzać istniejące kontrolki w celu utworzenia znacznie bogatszego interfejsu użytkownika.

Kontrolki serwera HTML

Kontrolki serwera HTML to elementy HTML, które zawierają runat=server atrybut. Kontrolki serwera HTML mają te same dane wyjściowe HTML i te same właściwości co odpowiadające im tagi HTML. Ponadto kontrolki serwera HTML zapewniają automatyczne zarządzanie stanem i zdarzenia po stronie serwera. Kontrolki serwera HTML oferują następujące korzyści:

  • Kontrolki serwera HTML mapują jeden do jednego przy użyciu odpowiednich tagów HTML.
  • Po skompilowaniu aplikacji ASP.NET do zestawu są kompilowane kontrolki serwera HTML z runat=server atrybutem .
  • Większość kontrolek obejmuje OnServerEvent najczęściej używane zdarzenie dla kontrolki. Na przykład kontrolka <input type=button> ma OnServerClick zdarzenie.
  • Tagi HTML, które nie są implementowane jako określone kontrolki serwera HTML, mogą być nadal używane po stronie serwera; Jednak są one dodawane do zestawu jako HtmlGenericControl.
  • Gdy strona ASP.NET zostanie ponownie opublikowana, kontrolki serwera HTML zachowają swoje wartości.

Klasa podstawowa System.Web.UI.HtmlControls.HtmlControl zawiera wszystkie typowe właściwości. Kontrolki serwera HTML pochodzą z tej klasy.

Aby użyć kontrolki serwera HTML, użyj następującej składni (która używa HtmlInputText kontrolki jako przykładu):

<input type="text" value="hello world" runat=server />

Aby uzyskać więcej informacji na temat poszczególnych kontrolek serwera HTML dostępnych w ASP.NET, zobacz następujące witryny sieci Web:

Kontrolki serwera sieci Web

Kontrolki sieci Web są podobne do kontrolek serwera HTML, takich jak Button, TextBox i Hyperlink, z tą różnicą, że kontrolki sieci Web mają ustandaryzowany zestaw nazw właściwości. Kontrolki serwera sieci Web oferują następujące korzyści:

  • Ułatwić producentom i deweloperom tworzenie narzędzi lub aplikacji, które automatycznie generują interfejs użytkownika.
  • Upraszcza proces tworzenia interaktywnych formularzy sieci Web, co wymaga mniejszej wiedzy na temat działania kontrolek HTML i sprawia, że zadanie ich używania jest mniej podatne na błędy.

Klasa podstawowa System.Web.UI.WebControls.WebControl zawiera wszystkie typowe właściwości. Większość kontrolek serwera sieci Web pochodzi z tej klasy.

Aby użyć kontrolki serwera sieci Web, użyj następującej składni (która używa kontrolki TextBox jako przykładu):

<asp:textbox text="hello world" runat=server />

Kontrolki serwera sieci Web można podzielić na cztery kategorie:

  • Podstawowe kontrolki sieci Web
  • Kontrolki walidacji
  • Kontrolki listy
  • Kontrolki zaawansowane

Podstawowe kontrolki internetowe

Podstawowe kontrolki sieci Web zapewniają taką samą funkcjonalność jak ich odpowiedniki kontroli serwera HTML. Jednak podstawowe kontrolki sieci Web obejmują dodatkowe metody, zdarzenia i właściwości, względem których można programować.

Aby uzyskać więcej informacji o poszczególnych kontrolkach sieci Web dostępnych w ASP.NET, zobacz następujące witryny sieci Web:

Kontrolki walidacji

Kontrolki walidacji służą do weryfikowania wartości wprowadzonych w innych kontrolkach strony. Kontrolki walidacji przeprowadzają weryfikację po stronie klienta, walidację po stronie serwera lub obie te funkcje, w zależności od możliwości przeglądarki, w której jest wyświetlana strona. Kontrolki weryfikacji oferują następujące korzyści:

  • Można skojarzyć co najmniej jedną kontrolkę weryfikacji z każdą kontrolką, którą chcesz zweryfikować.
  • Weryfikacja jest wykonywana po przesłaniu formularza strony.
  • Programowo można określić, czy ma nastąpić weryfikacja, co jest przydatne, jeśli chcesz podać przycisk anulowania, aby użytkownik mógł zakończyć pracę bez konieczności wypełniania prawidłowych danych we wszystkich polach.
  • Kontrolki walidacji automatycznie wykrywają, czy weryfikacja powinna być wykonywana po stronie klienta, czy po stronie serwera.

Uwaga

Weryfikacja po stronie klienta wyłapuje błędy przed zakończeniem operacji powrót. W związku z tym, jeśli masz kombinacje kontrolek weryfikacji po stronie klienta i serwera na jednej stronie, walidacja po stronie serwera zostanie wywłaszczona, jeśli weryfikacja po stronie klienta zakończy się niepowodzeniem. Aby uzyskać więcej informacji na temat poszczególnych kontrolek weryfikacji dostępnych w ASP.NET, zapoznaj się z następującymi witrynami sieci Web:

Kontrolki listy

Kontrolki listy to specjalne kontrolki serwera sieci Web, które obsługują powiązanie z kolekcjami. Kontrolki listy umożliwiają wyświetlanie wierszy danych w dostosowanym formacie szablonu. Wszystkie kontrolki listy uwidaczniają właściwości DataSource i DataMember, które są używane do powiązania z kolekcjami.

Kontrolki listy mogą wiązać się tylko z kolekcjami obsługuj interfejsy IEnumerable, ICollection lub IListSource. Przykładowa strona programu Visual C# dla platformy .NET jest wyświetlana w następujący sposób:

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Przykładowa strona programu Visual Basic dla platformy .NET jest wyświetlana w następujący sposób:

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Dane wyjściowe są wyświetlane w następujący sposób:

  • Jeden
  • Dwa
  • Trzy

Aby uzyskać więcej informacji na temat poszczególnych kontrolek listy dostępnych w ASP.NET, zobacz następujące witryny sieci Web:

Zaawansowane kontrolki

Oprócz powyższych kontrolek struktura stron ASP.NET udostępnia kilka kontrolek specyficznych dla zadań nazywanych kontrolkami bogatymi. Zaawansowane kontrolki są tworzone z wieloma elementami HTML i zawierają rozbudowane funkcje. Przykładami kontrolek zaawansowanych są kontrolki Kalendarz i Kontrolka AdRotator.

Aby uzyskać więcej informacji na temat poszczególnych zaawansowanych kontrolek dostępnych w ASP.NET, zobacz następujące witryny sieci Web:

Kontrolki użytkownika

Często możesz chcieć ponownie użyć interfejsu użytkownika formularza internetowego bez konieczności pisania dodatkowego kodu. ASP.NET pozwala to zrobić, konwertując Web Forms na kontrolki użytkownika. Kontrolki użytkownika, które mają rozszerzenie pliku ascx, mogą być używane wiele razy w jednym formularzu sieci Web.

Aby przekonwertować formularz internetowy na kontrolkę użytkownika, wykonaj następujące kroki:

  1. Usuń wszystkie <html>tagi , <head>, <body>i <form> .
  2. Jeśli dyrektywa pojawi @ Page się na stronie, zmień ją na @ Control.
  3. className Uwzględnij atrybut w dyrektywie@ Control, aby kontrolka użytkownika była silnie wpisywana podczas tworzenia wystąpienia.
  4. Nadaj kontrolce opisową nazwę pliku i zmień rozszerzenie pliku z .aspx na ascx.

Aby uzyskać więcej informacji na temat kontrolek użytkownika, zobacz Web Forms Kontrolki użytkownika.

Kontrolki niestandardowe

Oprócz wbudowanych kontrolek sieci Web ASP.NET umożliwia również tworzenie własnych kontrolek niestandardowych. Tworzenie kontrolek niestandardowych może być przydatne, jeśli masz do czynienia z jednym z następujących scenariuszy:

  • Musisz połączyć funkcje co najmniej dwóch wbudowanych kontrolek sieci Web.
  • Należy rozszerzyć funkcjonalność wbudowanej kontrolki.
  • Potrzebna jest kontrolka, która jest inna niż którakolwiek z aktualnie istniejących kontrolek.

Aby uzyskać więcej informacji na temat tworzenia kontrolek niestandardowych, zobacz następujące tematy: