Steuerelemente sind kleine Funktionsblöcke in einer grafischen Benutzeroberfläche, die Textfelder, Schaltflächen, Kontrollkästchen, Listenfelder, Beschriftungen und viele andere Tools umfassen. Mithilfe dieser Tools können Benutzer Daten eingeben, Auswahlen treffen und ihre Präferenzen angeben.
Kontrollen werden auch für strukturelle Arbeiten wie Validierung, Datenzugriff, Sicherheit, Erstellung von Masterseiten und Datenmanipulation verwendet.
ASP.NET verwendet fünf Arten von Websteuerelementen:
HTML-Steuerung
HTML-Serversteuerung
ASP.NET-Serversteuerelemente
ASP.NET Ajax-Serversteuerung
Benutzersteuerelemente und benutzerdefinierte Steuerelemente
ASP.NET-Serversteuerelemente sind die primären Steuerelemente, die in ASP.NET verwendet werden. Diese Steuerelemente können in die folgenden Kategorien unterteilt werden:
Validierungskontrollen – werden zur Validierung von Benutzereingaben und -arbeiten durch die Ausführung clientseitiger Skripts verwendet.
Datenquellenkontrolle – Bietet Datenbindungsfunktionen für verschiedene Datenquellen.
Datenansichtssteuerelement – Bei diesem Steuerelement handelt es sich um eine Vielzahl von Listen und Tabellen, die aus einer Datenquelle gebundene Daten anzeigen können.
Personalisierungskontrollen – Personalisieren Sie Seiten basierend auf Benutzerinformationen und Benutzerpräferenzen.
Anmelde- und Sicherheitskontrollen – Bietet Benutzerauthentifizierung.
Masterseite – Bietet ein einheitliches Layout und eine einheitliche Benutzeroberfläche für die gesamte Anwendung.
Navigationssteuerelemente – helfen Benutzern beim Navigieren. Zum Beispiel Menü, Baumansicht usw.
Umfangreiche Funktionskontrollen – Implementieren Sie spezielle Funktionen. Zum Beispiel: AdRotator-, FileUpload- und Kalender-Steuerelemente.
Die grundlegende Syntax für die Verwendung von Serversteuerelementen lautet:
<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />
Darüber hinaus verfügt Visual Studio über die folgenden Funktionen, die dabei helfen, fehlerfreien Code zu erstellen:
Ziehen Sie Steuerelemente per Drag-and-Drop in die Entwurfsansicht.
IntelliSense-Funktionen für Anzeige- und Autovervollständigungsfunktionen.
Eigenschaftenfenster zum direkten Festlegen von Eigenschaftswerten.
ASP.NET-Serversteuerelemente mit visuellen Funktionen werden von der WebControl-Klasse abgeleitet und erben alle Eigenschaften, Ereignisse und Methoden dieser Klasse.
Die WebControl-Klasse selbst und andere Serversteuerelemente, die keine visuellen Funktionen haben, werden von der System.Web.UI.Control-Klasse abgeleitet. Zum Beispiel ein PlaceHolder-Steuerelement oder ein XML-Steuerelement.
ASP.Net-Serversteuerelemente erben alle Eigenschaften, Ereignisse und Methoden der Klassen WebControl und System.Web.UI.Control.
Die folgende Tabelle zeigt Eigenschaften, die allen Serversteuerelementen gemeinsam sind:
Eigentum | beschreiben |
---|---|
Zugriffsschlüssel | Drücken Sie diese Taste und die Alt-Taste gleichzeitig, um den Fokus auf das Steuerelement zu verschieben. |
Attribute | Es handelt sich um eine Sammlung willkürlicher Eigenschaften, die nicht den Steuereigenschaften entsprechen (wird nur zum Rendern von Ansichten verwendet). |
BackColor | Hintergrundfarbe. |
BindingContainer | Enthält datengebundene Steuerelemente. |
BorderColor | Randfarbe. |
BorderStyle | Grenzstil. |
BorderWidth | Randbreite. |
UrsachenValidierung | Wird angezeigt, wenn eine Überprüfung erfolgt. |
ChildControlCreated | Gibt an, ob die untergeordneten Steuerelemente des Serversteuerelements eingerichtet sind. |
ClientID | Die Steuer-ID des HTML-Tags. |
Kontext | Das HttpContext-Objekt, das dem Serversteuerelement zugeordnet ist. |
Kontrollen | Eine Sammlung aller Steuerelemente innerhalb des Steuerelements. |
ControlStyle | Stile für Webserver-Steuerelemente. |
CssClass | CSS-Klassen. |
DataItemContainer | Stellt einen Verweis auf den Namensgeber bereit, wenn dieser einen IDataItemContainer implementiert. |
DataKeysContainer | Stellt eine Referenz für den Namensgeber bereit, wenn er IDataKeysControl implementiert. |
DesignModus | Gibt an, ob das Steuerelement in der Designoberfläche verwendet wird. |
DisabledCssClass | Ruft die CSS-Klasse ab, die auf das gerenderte HTML-Element angewendet werden soll, wenn das Steuerelement deaktiviert ist, oder legt diese fest. |
Ermöglicht | Gibt an, ob das Steuerelement deaktiviert ist. |
EnableTheming | Gibt an, ob das Design für das Steuerelement gilt. |
EnableViewState | Gibt an, ob der Ansichtsstatus des Steuerelements beibehalten werden soll. |
Veranstaltungen | Ruft eine Liste von Ereignishandlern ab, die das Steuerelement darstellen. |
Schriftart | Schriftarteinstellungen. |
Vorfarbe | Vordergrundfarbe. |
HasAttributes | Gibt an, ob das Steuerelement über Eigenschaftsgruppen verfügt. |
HasChildViewState | Gibt an, ob die untergeordneten Steuerelemente des aktuellen Serversteuerelements über gespeicherte Ansichtsstatuseinstellungen verfügen. |
Höhe | Höhe in Pixel oder Prozentsatz. |
AUSWEIS | Der Bezeichner des Steuerelements. |
IsChildControlStateCleared | Gibt an, ob das in diesem Steuerelement enthaltene Steuerelement den Steuerstatus hat. |
IsEnabled | Ruft einen Wert ab, der angibt, ob das Steuerelement aktiviert ist. |
IsTrackingViewState | Gibt an, ob das Serversteuerelement Änderungen an seinem Ansichtsstatus speichert. |
IsViewStateEnabled | Gibt an, ob der Ansichtsstatus für dieses Steuerelement aktiviert ist. |
LoadViewStateById | Gibt an, ob das Steuerelement am Laden seines Ansichtsstatus nach ID und nicht nach Index teilnimmt. |
Seite | Die Seite, die das Steuerelement enthält. |
Elternteil | Kindersicherungsfunktionen. |
Rendering-Kompatibilität | Gibt die Version von ASP.NET an, mit der der gerenderte HTML-Code kompatibel ist. |
Website | Der Halter, der das aktuelle Steuerelement enthält, wenn die Designoberfläche angezeigt wird. |
SkinID | Ruft die auf das Steuerelement angewendete Skin ab oder legt diese fest. |
Stil | Ruft eine Sammlung von Texteigenschaften ab, die als Stileigenschaften auf der externen Beschriftung des Webserversteuerelements angezeigt werden. |
TabIndex | Ruft die Indexbezeichnung des Webserversteuerelements ab oder legt diese fest. |
TagKey | Ruft den HtmlTextWriterTag-Wert ab, der diesem Webserversteuerelement entspricht. |
TagName | Ruft den Namen der Steuerelementbezeichnung ab. |
TemplateControl | Enthält die Vorlage für dieses Steuerelement. |
TemplateSourceDirectory | Ruft das virtuelle Verzeichnis der Seite oder des Steuerelements ab, das in diesem Steuerelement enthalten ist. |
Tooltip | Ruft den Text ab, der angezeigt wird, wenn sich der Mauszeiger über dem Webserversteuerelement befindet, oder legt diesen fest. |
UniqueID | Eindeutiger Bezeichner. |
ViewState | Ruft ein Wörterbuch mit Statusinformationen ab, mit dem der Status der Serversteuerungsansicht über mehrere Anforderungen an dieselbe Seite gespeichert und wiederhergestellt werden kann. |
ViewStateIgnoreCase | Gibt an, ob beim StateBag-Objekt die Groß-/Kleinschreibung nicht beachtet wird. |
ViewStateMode | Ruft den Ansichtsstatus dieses Steuerelements ab oder legt diesen fest. |
Sichtbar | Gibt an, ob das Serversteuerelement sichtbar ist. |
Breite | Ruft die Breite des Webserversteuerelements ab oder legt diese fest. |
Die Methoden der Serversteuerung werden in der folgenden Tabelle dargestellt:
Verfahren | beschreiben |
---|---|
AddAttributesToRender | Fügen Sie die HTML-Attribute und -Stile hinzu, die zum Rendern des angegebenen HtmlTextWriterTag erforderlich sind. |
AddedControl | Wird aufgerufen, nachdem ein untergeordnetes Steuerelement zur Steuerelementsammlung des Steuerobjekts hinzugefügt wurde. |
AddParsedSubObject | Benachrichtigt das Serversteuerelement, dass ein Element (XML oder HTML) analysiert wurde, und fügt das Element der Steuerelementsammlung des Serversteuerelements hinzu. |
ApplyStyleSheetSkin | Wendet im Seiten-Stylesheet definierte Stileigenschaften auf Steuerelemente an. |
ClearCachedClientID | Infrastruktur. Legen Sie den zwischengespeicherten ClientID-Wert auf null fest. |
ClearChildControlState | Entfernt Steuerstatusinformationen für untergeordnete Steuerelemente des Serversteuerelements. |
ClearChildState | Entfernt Ansichtsstatus- und Steuerelementstatusinformationen für alle untergeordneten Steuerelemente des Serversteuerelements. |
ClearChildViewState | Entfernt Ansichtsstatusinformationen für alle untergeordneten Steuerelemente des Serversteuerelements. |
CreateChildControls | Wird zum Erstellen untergeordneter Steuerelemente verwendet. |
CreateControlCollection | Erstellen Sie eine neue Steuerelementsammlung, um untergeordnete Steuerelemente aufzunehmen. |
CreateControlStyle | Erstellt ein Stilobjekt, das alle stilbezogenen Eigenschaften implementiert. |
DataBind | Binden Sie die Datenquelle an das Serversteuerelement und alle seine untergeordneten Steuerelemente. |
DataBind(Boolean) | Binden Sie die Datenquelle und die Optionen, die das DataBinding-Ereignis auslösen, an das Serversteuerelement und alle seine untergeordneten Steuerelemente. |
DataBindChildren | Binden Sie die Datenquelle an ein untergeordnetes Steuerelement des Serversteuerelements. |
Entsorgen | Ermöglicht einem Serversteuerelement, letzte Bereinigungsvorgänge durchzuführen, bevor es aus dem Speicher freigegeben wird. |
Stellen Sie sicher, dass ChildControls vorhanden ist | Bestimmt, ob das Serversteuerelement untergeordnete Steuerelemente enthält. Wenn nicht, erstellen Sie ein untergeordnetes Steuerelement. |
GewährleistenID | Erstellen Sie eine Kennung für ein Steuerelement, das keine Kennung hat. |
Gleicht (Objekt) | Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. |
Abschließen | Ermöglicht einem Objekt den Versuch, Ressourcen freizugeben und andere Bereinigungsvorgänge durchzuführen, bevor das Objekt vom Papierkorb zurückgefordert wird. |
FindControl(String) | Durchsucht den aktuell benannten Container nach Serversteuerelementen mit dem angegebenen ID-Parameter. |
FindControl(String, Int32) | Durchsucht den aktuell benannten Container nach Serversteuerelementen mit dem angegebenen ID-Parameter und der angegebenen Ganzzahl. |
Fokus | Legen Sie den Eingabefokus für das Steuerelement fest. |
GetDesignModeState | Ruft die Entwurfszeitdaten des Steuerelements ab. |
GetType | Rufen Sie den Typ der aktuellen Instanz ab. |
GetUniqueIDRelativeTo | Gibt den vorangestellten Teil der eindeutigen ID-Eigenschaft des angegebenen Steuerelements zurück. |
HasControls | Bestimmt, ob das Serversteuerelement untergeordnete Steuerelemente enthält. |
HasEvents | Gibt an, ob das Ereignis vom Steuerelement oder anderen untergeordneten Steuerelementen registriert wird. |
IsLiteralContent | Bestimmt, ob das Serversteuerelement nur Textinhalte enthält. |
LoadControlState | Kontrollstatusinformationen wiederherstellen. |
LoadViewState | Ansichtsstatusinformationen wiederherstellen. |
MapPathSecure | Ruft den physischen Pfad ab, dem ein absoluter oder relativer virtueller Pfad zugeordnet ist. |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Objekts. |
MergeStyle | Kopiert alle nicht leeren Elemente des Websteuerelements mit dem angegebenen Stil, überschreibt jedoch keine vorhandenen Stilelemente des Steuerelements. |
OnBubbleEvent | Bestimmt, ob die Ereignisse des Serversteuerelements die UI-Serversteuerelementhierarchie der Seite durchlaufen. |
OnDataBinding | Lösen Sie ein Datenbindungsereignis aus. |
OnInit | Löst das Init-Ereignis aus. |
OnLoad | Löst ein Ladeereignis aus. |
OnPreRender | Löst das PreRender-Ereignis aus. |
OnUnload | Lösen Sie ein Deinstallationsereignis aus. |
OpenFile | Rufen Sie den Stream ab, der zum Lesen der Datei verwendet wird. |
RemovedControl | Wird aufgerufen, nachdem ein untergeordnetes Steuerelement aus der Steuerelementsammlung des Steuerobjekts entfernt wurde. |
Machen | Zeigt das Steuerelement dem angegebenen HTML-Autor an. |
RenderBeginTag | Zeigt das öffnende HTML-Tag des Steuerelements für den angegebenen Autor an. |
RenderChildren | Gibt den Inhalt der untergeordneten Elemente des Serversteuerelements in das bereitgestellte HtmlTextWriter-Objekt aus, um Inhalte zu schreiben, die auf dem Client gerendert werden. |
RenderContents | Zeigt den Inhalt des Steuerelements dem angegebenen Autor an. |
RenderControl(HtmlTextWriter) | Gibt den Inhalt des Serversteuerelements an das bereitgestellte HtmlTextWriter-Objekt aus und speichert Nachverfolgungsinformationen zum Steuerelement, wenn die Nachverfolgung aktiviert ist. |
RenderEndTag | Zeigt das schließende HTML-Tag des Steuerelements für den angegebenen Autor an. |
ResolveAdapter | Ruft den Steuerelementadapter ab, der für die Darstellung des angegebenen Steuerelements verantwortlich ist. |
SaveControlState | Speichert Statusänderungen an Serversteuerelementen, die aufgetreten sind, seit die Seite an den Server zurückgesendet wurde. |
SaveViewState | Speichert jeden Status, der nach dem Aufruf der TrackViewState-Methode geändert wurde. |
SetDesignModeState | Legen Sie Entwurfszeitdaten für das Steuerelement fest. |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. |
TrackViewState | Bewirkt, dass ein Steuerelement Änderungen an seinem Ansichtszustand verfolgt, sodass diese in der ViewState-Eigenschaft des Objekts gespeichert werden können. |
Werfen wir einen Blick auf ein bestimmtes Serversteuerelement – das Baumansichtssteuerelement. Baumansichtssteuerelemente sind Navigationssteuerelemente. Weitere Navigationssteuerelemente sind: Menüsteuerung und SiteMapPath-Steuerung.
Fügen Sie der Seite ein Baumansichtssteuerelement hinzu. Wählen Sie Knoten bearbeiten... aus der Aufgabe aus und bearbeiten Sie jeden Knoten mithilfe des Knoteneditors in der Baumansicht wie folgt:
Nachdem der Knoten erfolgreich erstellt wurde, erscheint in der Entwurfsansicht die folgende Anzeige:
Mit der Aufgabe „AutoFormat...“ können Sie das Format der Baumansicht wie folgt festlegen:
Fügen Sie der Seite ein Beschriftungssteuerelement und ein Textfeldsteuerelement hinzu und benennen Sie sie jeweils lblmessage und txtmessage.
Schreiben Sie ein paar Codezeilen, um sicherzustellen, dass bei Auswahl eines bestimmten Knotens das Beschriftungssteuerelement den Knotentext und im Textfeld alle darunter liegenden untergeordneten Knoten (falls vorhanden) anzeigt. Der Code für die Hintergrunddatei sollte so aussehen:
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace eventdemo { public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}
Führen Sie die Seite aus, um den Effekt zu sehen, und Sie können Knoten erweitern und reduzieren.