Gewusst wie: Dynamisches Erstellen von Vorlagen in DataList-Webserversteuerelementen

Aktualisiert: November 2007

Vorlagen müssen zur Entwurfszeit nicht zugewiesen werden. In einigen Situationen können Sie die Vorlage zwar zur Entwurfszeit einrichten, die Änderungen, die Sie zur Laufzeit vornehmen, sind jedoch so umfangreich, dass das Laden einer neuen Vorlage zur Laufzeit die Programmierung vereinfacht. In anderen Situationen verfügen Sie möglicherweise über mehrere verwendbare Vorlagen, möchten die Vorlage jedoch zur Laufzeit ändern.

So erstellen Sie eine Vorlagendefinitionsdatei

  1. Erstellen Sie eine neue Textdatei mit der Dateinamenerweiterung .ascx.

  2. Fügen Sie Ihrer Vorlagedatei Vorlagedefinitionsanweisungen hinzu, und speichern Sie diese. Verwenden Sie dabei dasselbe Markup, das Sie auch bei einer deklarativen Vorlage verwenden würden.

    Das folgende Beispiel zeigt den Inhalt einer ASCX-Datei, welcher aus Markup für eine Vorlage besteht. Diese Vorlage enthält datengebundene Label-Steuerelemente. Die Datenbindung wird zur Laufzeit in die an das DataList-Steuerelement gebundene Datenquelle aufgelöst.

    Name: <asp:Label ID="CategoryNameLabel"  
              Text='<%# Eval("CategoryName") %>'>
          </asp:Label>
    <br />
    Description: <asp:Label ID="DescriptionLabel"  
              Text='<%# Eval("Description") %>'>
          </asp:Label>
    

So erstellen Sie Vorlagen dynamisch

  • Fügen Sie der Web Forms-Seite Code hinzu, um die Vorlage mithilfe der LoadTemplate-Methode zu laden. Diese Methode liest eine Vorlagendefinition aus einer Datei und erstellt ein ITemplate-Objekt. Dieses Objekt können Sie dann jeder Vorlage in einem DataList-Steuerelement hinzufügen.

    Im folgenden Beispiel wird der Page_Init-Ereignishandler zum Laden einer Vorlage verwendet, die entsprechend dem obigen Beispiel erstellt wurde und den Namen NewTemplate.ascx hat.

    Protected Sub Page_Init(ByVal Sender As System.Object, _
            ByVal e As System.EventArgs)
        DataList1.AlternatingItemTemplate = _
            Page.LoadTemplate("NewTemplate.ascx")
    End Sub
    
    protected void Page_Init(object sender, EventArgs e)
    {
        DataList1.AlternatingItemTemplate = 
            Page.LoadTemplate("NewTemplate.ascx");
    }
    

Siehe auch

Referenz

Übersicht über das DataList-Webserversteuerelement