Implémentation du rendu basé sur un modèle
Mise à jour : novembre 2007
Les contrôles mobiles ASP.NET qui prennent en charge un rendu basé sur un modèle prennent également en charge un rendu par défaut. La façon dont les modèles sont utilisés pour produire un rendu peut varier selon le périphérique cible. ASP.NET fournit un ordre standard d'opérations à suivre pour qu'un rendu basé sur un modèle soit spécifique au périphérique. Les contrôles mobiles qui prennent en charge le rendu basé sur un modèle doivent respecter l'ordre suivant :
Le contrôle détermine si des modèles de périphériques sont définis et sélectionnés, à l'aide de la propriété IsTemplated. Utilisez la méthode OnInit ou CreateChildControls pour ce faire.
Si des modèles sont définis, le contrôle appelle la méthode CreateTemplatedUI, dont il hérite de la classe de base MobileControl.
Remarque : N'appelez pas CreateTemplatedUI si le contrôle n'est pas basé sur un modèle.
CreateTemplatedUI appelle la méthode CreateTemplatedUI de l'adaptateur de contrôle. Vous pouvez écrire du code pour les adaptateurs de périphérique qui substituent cette méthode, afin d'implémenter un rendu basé sur un modèle spécifique au périphérique.
L'implémentation par défaut de la méthode CreateTemplatedUI de l'adaptateur de contrôle, définie dans la classe de base de l'adaptateur de contrôle, appelle à son tour la méthode CreateDefaultTemplatedUI du contrôle. Vous pouvez écrire du code pour les contrôles qui substituent cette méthode, afin d'implémenter un rendu basé sur un modèle de type général.
Dans la méthode Render de l'adaptateur, le contrôle affiche les modèles via le rendu de l'enfant du contrôle (où des instances de modèles sont créées).
Les contrôles mobiles doivent également créer en permanence des instances de nouveaux modèles dans un type de contrôle conteneur dérivé de TemplateContainer. Il s'agit d'une règle plus stricte que celle des contrôles serveur ASP.NET, qui exige uniquement que le contrôle implémente l'interface de marqueur INamingContainer. L'exemple de code suivant montre comment créer une instance de modèle dans un contrôle mobile.
void CreateChildTemplate(ITemplate template)
{
TemplateContainer container = new TemplateContainer();
template.InstantiateIn(container);
container.DataBind();
Controls.Add(container);
}
ItemCommand, événements
Lors d'un rendu basé sur un modèle, le gestionnaire d'événements ItemCommand est appelé via le mécanisme de propagation d'événements ASP.NET. Un paramètre, qui pointe vers l'élément source et la propriété CommandName du contrôle ayant généré l'événement, est passé au gestionnaire d'événements. Vous pouvez ainsi afficher un élément de liste unique avec plusieurs interactions associées.
Lors du rendu par défaut, le contrôle fournit une interface utilisateur simple qui permet à l'utilisateur de cliquer sur une liste d'éléments. Lors de la publication, le contrôle appelle le gestionnaire ItemCommand avec un argument qui pointe vers l'élément source. La propriété CommandName retourne null.
Voir aussi
Tâches
Comment : créer des contrôles utilisateur ASP.NET avec modèles
Concepts
Ensembles de modèles et contrôles basés sur un modèle
Autres ressources
Ajout de nouveaux adaptateurs de périphérique et d'une prise en charge des périphériques