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>


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow