Dela via


översikt över ASP.NET-serverkontroller

Den här artikeln beskriver ASP.NET serverkontroller, till exempel HTML-serverkontroller, webbserverkontroller, listkontroller osv.

Ursprunglig produktversion: ASP.NET
Ursprungligt KB-nummer: 306459

Den här artikeln refererar till följande namnområden för Microsoft .NET Framework-klassbibliotek:

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

Serverkontroller i ASP.NET sidramverk

Det ASP.NET sidramverket innehåller ett antal inbyggda serverkontroller som är utformade för att tillhandahålla en mer strukturerad programmeringsmodell för webben. De här kontrollerna innehåller följande funktioner:

  • Automatisk tillståndshantering.
  • Enkel åtkomst till objektvärden utan att behöva använda objektet Request .
  • Möjlighet att reagera på händelser i kod på serversidan för att skapa program som är bättre strukturerade.
  • En vanlig metod för att skapa användargränssnitt för webbsidor.
  • Utdata anpassas automatiskt baserat på funktionerna i webbläsaren.

Förutom de inbyggda kontrollerna ger det ASP.NET sidramverket även möjlighet att skapa användarkontroller och anpassade kontroller. Användarkontroller och anpassade kontroller kan förbättra och utöka befintliga kontroller för att skapa ett mycket rikare användargränssnitt.

HTML-serverkontroller

HTML-serverkontrollerna är HTML-element som innehåller ett runat=server attribut. HTML-serverkontrollerna har samma HTML-utdata och samma egenskaper som motsvarande HTML-taggar. Dessutom tillhandahåller HTML-serverkontroller automatisk tillståndshantering och händelser på serversidan. HTML-serverkontroller har följande fördelar:

  • HTML-serverns kontroller mappar en till en med motsvarande HTML-taggar.
  • När det ASP.NET programmet kompileras kompileras HTML-serverkontrollerna runat=server med attributet till sammansättningen.
  • De flesta kontroller innehåller en OnServerEvent för den vanligaste händelsen för kontrollen. Kontrollen har till exempel <input type=button> en OnServerClick händelse.
  • HTML-taggar som inte implementeras som specifika HTML-serverkontroller kan fortfarande användas på serversidan. De läggs dock till i sammansättningen som HtmlGenericControl.
  • När sidan ASP.NET återpubliceras behåller HTML-serverkontrollerna sina värden.

Basklassen System.Web.UI.HtmlControls.HtmlControl innehåller alla vanliga egenskaper. HTML-serverkontroller härleds från den här klassen.

Om du vill använda en HTML-serverkontroll använder du följande syntax (som använder HtmlInputText kontrollen som exempel):

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

Mer information om enskilda HTML-serverkontroller som är tillgängliga i ASP.NET finns på följande webbplatser:

Webbserverkontroller

Webbkontroller liknar HTML-serverkontroller som Button, TextBox och Hyperlänk, förutom att webbkontroller har en standardiserad uppsättning egenskapsnamn. Webbserverkontroller har följande fördelar:

  • Gör det enklare för tillverkare och utvecklare att skapa verktyg eller program som automatiskt genererar användargränssnittet.
  • Förenkla processen med att skapa interaktiva webbformulär, vilket kräver mindre kunskap om hur HTML-kontroller fungerar och gör uppgiften att använda dem mindre felbenägen.

Basklassen System.Web.UI.WebControls.WebControl innehåller alla vanliga egenskaper. De flesta av webbserverkontrollerna härleds från den här klassen.

Om du vill använda en webbserverkontroll använder du följande syntax (som använder TextBox-kontrollen som exempel):

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

Webbserverkontroller kan delas in i fyra kategorier:

  • Grundläggande webbkontroller
  • Verifieringskontroller
  • Listkontroller
  • Omfattande kontroller

Grundläggande webbkontroller

Grundläggande webbkontroller har samma funktioner som deras HTML-serverkontrollmotsvarigheter. Grundläggande webbkontroller innehåller dock ytterligare metoder, händelser och egenskaper som du kan programmera mot.

Mer information om enskilda webbkontroller som är tillgängliga i ASP.NET finns på följande webbplatser:

Verifieringskontroller

Verifieringskontroller används för att verifiera de värden som anges i andra kontroller på sidan. Verifieringskontroller utför validering på klientsidan, validering på serversidan eller båda, beroende på funktionerna i webbläsaren där sidan visas. Valideringskontroller ger följande fördelar:

  • Du kan associera en eller flera verifieringskontroller med varje kontroll som du vill verifiera.
  • Verifieringen utförs när sidformuläret skickas.
  • Du kan ange programmatiskt om valideringen ska ske, vilket är användbart om du vill ange en avbryt-knapp så att användaren kan avsluta utan att behöva fylla i giltiga data i alla fält.
  • Verifieringskontrollerna identifierar automatiskt om valideringen ska utföras på klientsidan eller på serversidan.

Obs!

En validering på klientsidan fångar upp fel innan en efteråterställningsåtgärd har slutförts. Om du har kombinationer av valideringskontroller på klientsidan och serversidan på en enda sida kommer valideringen på serversidan därför att förhindras om valideringen på klientsidan misslyckas. Mer information om enskilda verifieringskontroller som är tillgängliga i ASP.NET finns på följande webbplatser:

Lista kontroller

Listkontroller är särskilda webbserverkontroller som stöder bindning till samlingar. Du kan använda listkontroller för att visa rader med data i ett anpassat mallformat. Alla listkontroller exponerar egenskaperna DataSource och DataMember, som används för att binda till samlingar.

Listkontroller kan endast bindas till samlingar som stöder gränssnitten IEnumerable, ICollection eller IListSource. Till exempel visas en Visual C# .NET-exempelsida på följande sätt:

<%@ 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>

En Visual Basic .NET-exempelsida visas på följande sätt:

<%@ 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>

Utdata visas på följande sätt:

  • En
  • Två
  • Tre

Mer information om enskilda listkontroller som är tillgängliga i ASP.NET finns på följande webbplatser:

Omfattande kontroller

Förutom föregående kontroller innehåller ASP.NET-sidramverket några, uppgiftsspecifika kontroller som kallas omfattande kontroller. Omfattande kontroller skapas med flera HTML-element och innehåller omfattande funktioner. Exempel på omfattande kontroller är kalenderkontrollen och AdRotator-kontrollen.

Mer information om enskilda omfattande kontroller som är tillgängliga i ASP.NET finns på följande webbplatser:

Användarkontroller

Ofta kanske du vill återanvända användargränssnittet för ditt webbformulär utan att behöva skriva någon extra kod. ASP.NET kan du göra detta genom att konvertera din Web Forms till användarkontroller. Användarkontroller, som har filnamnstillägget.ascx, kan användas flera gånger i ett enda webbformulär.

Så här konverterar du ett webbformulär till en användarkontroll:

  1. Ta bort alla <html>taggar , <head>, <body>och <form> .
  2. Om direktivet @ Page visas på sidan ändrar du det till @ Control.
  3. Inkludera ett className attribut i @ Control direktivet så att användarkontrollen skrivs starkt när du instansierar den.
  4. Ge kontrollen ett beskrivande filnamn och ändra filnamnstillägget från .aspx till .ascx.

Mer information om användarkontroller finns i Web Forms Användarkontroller.

Anpassade kontroller

Förutom de inbyggda webbkontrollerna kan du ASP.NET även skapa egna anpassade kontroller. Det kan vara bra att utveckla anpassade kontroller om du står inför något av följande scenarier:

  • Du måste kombinera funktionerna i två eller flera inbyggda webbkontroller.
  • Du måste utöka funktionerna i en inbyggd kontroll.
  • Du behöver en kontroll som skiljer sig från någon av de kontroller som för närvarande finns.

Mer information om hur du utvecklar anpassade kontroller finns i följande avsnitt: