ASP.NET
ASP.NET - Benutzersteuerelemente
Suche…
Einführung
Benutzersteuerelemente sind Container, die wie HTML-Markup- und Serversteuerelemente mit Code-Behind auf dieselbe Weise gefüllt werden können wie ASPX-Seiten. Sie sind als wieder verwendbare kleinere Einheiten einer Seite behandelt, so können sie nicht als Stand-alone - Seiten laufen und darf nicht mit html, des Körpers oder der Form von HTML - Elementen in ihnen.
Einführung von Benutzersteuerelementen
Benutzersteuerelemente werden für die Wiederverwendbarkeit von ASP.NET-Seiten ähnlich wie Masterseiten erstellt. Anstatt das Basisseitenlayout gemeinsam zu nutzen, verwenden Benutzersteuerelemente eine Gruppe von integrierten HTML / ASP.NET-Serversteuerelementen oder ein bestimmtes Formularlayout, z. B. die Übermittlung von Kommentaren oder Gastnotizen.
Ein Benutzersteuerelement kann sowohl HTML-Steuerelemente als auch ASP.NET-Serversteuerelemente enthalten, einschließlich clientseitiger Skripts.
Der Benutzer steuert gehören in der Regel Control
auf seiner Definition:
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
Wie bei der ASPX-Seite bestehen Benutzersteuerelemente aus Markierungen, die einem Code hinter einer Datei zugeordnet werden können, um bestimmte Ereignisse und Aufgaben auszuführen. Daher können alle auf der ASPX-Seite verfügbaren HTML-Tags für Benutzersteuerelemente verwendet werden, mit Ausnahme von <html>
, <body>
und <form>
Tags.
Hier ist ein Beispiel für die einfache Benutzersteuerungsmarkierung:
<%-- UserControl.ascx --%>
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
<div>
<asp:Label ID="Label1" runat="server" />
<br />
<asp:Button ID="Button1" runat="server" Text="Click Here" OnClick="Button1_Click" />
</div>
Code-Behind-Beispiel:
// UserControl.ascx.cs
public partial class UserControl : System.Web.UI.UserControl
{
protected void Button1_Click(Object sender, EventArgs e)
{
Label1.Text = "Hello World!";
}
}
Bevor ein Benutzersteuerelement in die ASPX-Seite eingefügt wird, sollte die Direktive Register
oben auf der Seite angegeben werden, die auf das Benutzersteuerelement mit der Quell-URL, dem Tag-Namen und dem Tag-Präfix verweist.
<%@ Register Src="UserControl.ascx" TagName="UserControl" TagPrefix="uc" %>
Anschließend können Sie die Benutzersteuerung in der ASPX-Seite platzieren, wie in der integrierten ASP.NET-Serversteuerung:
<uc:UserControl ID="UserControl1" runat="server" />
Benutzersteuerungsinstanz programmgesteuert erstellen
Wenn Sie eine Instanz des Benutzersteuerelements im ASPX-Code hinter der Seite instanziieren möchten, müssen Sie die Benutzersteuerelementdeklaration für Page_Load
Ereignis Page Page_Load
so schreiben:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(Object sender, EventArgs e)
{
Control control1 = LoadControl("UserControl.ascx");
Page.Controls.Add(control1);
}
}
Beachten Sie, dass die ASCX-Datei des Benutzersteuerelements bereits beim Ausführen der LoadControl-Methode erstellt werden sollte.
Eine andere bekannte Methode zur programmgesteuerten Deklaration von Benutzersteuerelementen ist die Verwendung von PlaceHolder
:
public partial class Default : System.Web.UI.Page
{
public PlaceHolder Placeholder1;
protected void Page_Load(Object sender, EventArgs e)
{
Control control1 = LoadControl("UserControl.ascx");
Placeholder1.Controls.Add(control1);
}
}
Je nach Bedarf platziert PlaceHolder
Benutzersteuerelemente in einem Container, in dem alle auf der Seite dynamisch hinzugefügten Page.Controls
werden Benutzersteuerelemente direkt in die Seite Page.Controls
die für das Rendern von HTML-Literalsteuerelementen bevorzugt werden.
Benutzerdefinierte Eigenschaften für die Benutzersteuerung hinzufügen
Wie standardmäßige in ASP.NET integrierte Serversteuerelemente können Benutzersteuerelemente Eigenschaften (Attribute) für das Definitions-Tag haben. Angenommen, Sie möchten der UserControl.ascx
Datei einen Farbeffekt wie UserControl.ascx
hinzufügen:
<uc:UserControl ID="UserControl1" runat="server" Color="blue" />
Zu diesem Zeitpunkt können benutzerdefinierte Attribute / Eigenschaften für Benutzersteuerelemente festgelegt werden, indem Eigenschaften im Code des Benutzersteuerelements dahinter deklariert werden:
private String _color;
public String Color
{
get
{
return _color;
}
set
{
_color = value;
}
}
Wenn Sie einen Standardwert für eine Benutzersteuerungs-Eigenschaft festlegen möchten, weisen Sie außerdem den Standardwert innerhalb der Konstruktormethode des Benutzersteuerelements zu.
public UserControl()
{
_color = "red";
}
Anschließend sollte das Markierungselement für Benutzersteuerelemente so geändert werden, dass das Farbattribut wie folgt hinzugefügt wird:
<%@ Control Language="C#" AutoEventWireup="True" CodeFile="UserControl.ascx.cs" %>
<div>
<span style="color:<%= Color %>"><asp:Label ID="Label1" runat="server" /></span>
<br />
<asp:Button ID="Button1" runat="server" Text="Click Here" OnClick="Button1_Click" />
</div>