Comment : créer dynamiquement des modèles dans des contrôles serveur Web DataList

Mise à jour : novembre 2007

Les modèles ne doivent pas obligatoirement être assignés au moment du design. Dans certains cas, il est possible de définir la disposition du modèle au moment du design, mais lorsque vous savez que les modifications à apporter au moment de l'exécution seront importantes, le chargement d'un nouveau modèle au moment de l'exécution simplifie la programmation. Dans d'autres cas, vous disposez de plusieurs modèles possibles, mais vous souhaitez modifier les modèles au moment de l'exécution.

Pour créer un fichier de définition de modèle

  1. Créez un fichier texte avec une extension .ascx.

  2. Ajoutez y des instructions relatives à la définition du modèle et enregistrez-le à l'aide de la même balise utilisée dans tous les modèles déclaratifs.

    L'exemple suivant affiche le contenu d'un fichier .ascx avec la balise d'un modèle contenant des contrôles Label liés aux données. La liaison de données est résolue au moment de l'exécution par rapport à la source de données liée au contrôle DataList.

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

Pour créer dynamiquement des modèles

  • Ajoutez du code à votre page Web Forms afin de charger le modèle à l'aide de la méthode LoadTemplate. Celle-ci lit une définition de modèle dans un fichier et crée un objet ITemplate. Vous pouvez ensuite assigner cet objet à l'un des modèles d'un contrôle DataList.

    L'exemple suivant utilise le gestionnaire d'événements Page_Init pour charger un modèle créé comme décrit ci-dessus et nommé NewTemplate.ascx.

    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");
    }
    

Voir aussi

Référence

Vue d'ensemble du contrôle serveur Web DataList