|
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
|
Übersetzung
Original
|
Gewusst wie: Programmgesteuertes Erstellen von Instanzen eines ASP.NET-Benutzersteuerelements
So erstellen Sie eine Instanz eines Benutzersteuerelements programmgesteuert
Stellen Sie sicher, dass die @ Control-Direktive des Benutzersteuerelements ein ClassName-Attribut enthält, das dem Benutzersteuerelement eine Klasse zuweist. Im folgenden Beispiel wird das ClassName-Attribut festgelegt, um ein Benutzersteuerelement strikt zu typisieren. <%@ Control className="MyUserControl" %>
Erstellen Sie auf der Seite, auf der Sie mit dem Benutzersteuerelement arbeiten möchten, unter Verwendung der @ Reference-Direktive einen Verweis auf das Benutzersteuerelement. Beim programmgesteuerten Erstellen eines Benutzersteuerelements steht der ASP.NET-Webseite die strikte Typbindung für das Benutzersteuerelement erst zur Verfügung, nachdem ein Verweis darauf erstellt wurde. Mit folgendem Code wird z. B. ein Verweis auf ein Benutzersteuerelement erstellt, das in der Datei MyUserControl.ascx erstellt wurde. <%@ Reference Control="MyUserControl.ascx" %>
HinweisVerwenden Sie @ Reference, wenn Sie beabsichtigen, das Steuerelement programmgesteuert zu laden. Verwenden Sie die @ Register-Direktive, wenn Sie der Seite ein Benutzersteuerelement deklarativ hinzufügen. Einzelheiten finden Sie unter Gewusst wie: Einfügen eines Benutzersteuerelements in eine ASP.NET-Webseite. Erstellen Sie mit dem Klassennamen des Steuerelements eine Instanzvariable für das Benutzersteuerelement. Die Klasse ist Teil des ASP-Namespaces. Wenn Sie beispielsweise eine Instanz des als Spinner-Klasse deklarierten Benutzersteuerelements erstellen möchten, können Sie folgende Syntax verwenden: Protected Spinner1 As ASP.Spinner
Protected ASP.Spinner Spinner1;
Erstellen Sie im Code eine Instanz des Benutzersteuerelements, indem Sie die LoadControl-Methode aufrufen. Weisen Sie je nach den Erfordernissen Eigenschaftswerte zu, und fügen Sie das Steuerelement dann der ControlCollection-Auflistung eines Containers auf der Seite zu, z. B. einem PlaceHolder-Steuerelement.
HinweisWenn Sie dem ControlCollection-Objekt mit der Add-Methode Steuerelemente hinzufügen, werden die Steuerelemente in der Reihenfolge ihrer Verarbeitung in der Auflistung platziert. Wenn Sie ein Steuerelement an einer bestimmten Position in der Auflistung hinzufügen möchten, verwenden Sie die AddAt-Methode und geben die Indexposition an, an der Sie das Steuerelement speichern möchten.
<%@ Page Language="C#" %> <%@ Reference Control="~/Controls/Spinner.ascx" %> <script runat="server"> private ASP.Spinner Spinner1 protected void Page_Load(object sender, EventArgs e) { Spinner1 = (ASP.Spinner)LoadControl("~/Controls/Spinner.ascx"); } protected void Button1_Click(object sender, EventArgs e) { PlaceHolder1.Controls.Add(Spinner1); } </script> <html> <head id="Head1" runat="server"> <title>Load User Control Programmatically</title> </head> <body> <form id="form1" runat="server"> <div> <asp:PlaceHolder runat="server" ID="PlaceHolder1" /> <br /> <asp:Button ID="Button1" runat="server" Text="Click to Add User Control" OnClick="Button1_Click" /> <br /> <br /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </div> </form> </body> </html>