Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Gewusst wie: Programmgesteuertes Erstellen von Instanzen eines ASP.NET-Benutzersteuerelements

Auf einer ASP.NET-Webseite können Sie Instanzen von Benutzersteuerelementen auf dieselbe Weise programmgesteuert erstellen wie Instanzen von anderen Serversteuerelementen.

So erstellen Sie eine Instanz eines Benutzersteuerelements programmgesteuert

  1. 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" %>
    
  2. 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" %>
    
    HinweisHinweis

    Verwenden 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.

  3. 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;
    
  4. Erstellen Sie im Code eine Instanz des Benutzersteuerelements, indem Sie die LoadControl-Methode aufrufen.

  5. 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.

    HinweisHinweis

    Wenn 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.

Im folgenden Beispiel wird eine ASP.NET-Webseite gezeigt, die ein Benutzersteuerelement programmgesteuert lädt. Die Seite schließt eine @ Reference-Direktive ein, um die Datei des Steuerelements anzugeben. Die LoadControl-Methode liest die Datei und instanziiert sie als ein Steuerelement, das der Seite hinzugefügt werden kann.

<%@ 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>
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.