Prise en charge des modèles de périphériques
Mise à jour : novembre 2007
La prise en charge des modèles de périphériques s'effectue dans le cadre de la construction DeviceSpecific/Choice. L'écriture de contrôles mobiles ASP.NET qui fournissent des modèles de périphériques s'apparente beaucoup à l'écriture de contrôles serveur ASP.NET basés sur des modèles. Cependant, souvenez-vous des différences suivantes spécifiques aux contrôles mobiles :
Chaque contrôle mobile qui prend en charge les modèles de périphériques implémente l'interface ITemplateable. Il s'agit d'une interface de marqueur qui ne possède pas de méthodes.
Les contrôles qui prennent en charge les modèles de périphériques doivent posséder un mode de rendu par défaut ; ainsi, ils peuvent tout de même être rendus sur les périphériques lorsque aucun modèle de périphérique n'est défini ou spécifié.
Les développeurs de contrôles doivent décider du mode de traitement des modèles de périphériques lors du rendu. L'un des comportements possibles consiste à basculer vers un mode modèles exclusif, si aucun modèle de périphérique n'est défini ni choisi. La totalité du rendu du contrôle s'effectue alors via les modèles fournis. Le contrôle List est un exemple de ce type de contrôle. Un contrôle peut également utiliser des modèles dans un strict processus d'ajout ; si un modèle particulier est défini, puis choisi, il peut servir à ajouter ou à remplacer une partie du rendu par défaut. Le contrôle Form est un exemple de contrôle ayant ce comportement.
Au lieu d'exposer les propriétés de ITemplate, un contrôle mobile a accès à une collection de modèles définis. La classe de base MobileControl possède deux membres qui peuvent aider un contrôle à utiliser des modèles de périphériques :
La propriété IsTemplated indique si des modèles ont été définis et choisis pour le contrôle, comme le montre l'exemple de code suivant.
if (mobileControl.IsTemplated) { return true; }
La méthode GetTemplate retourne le modèle de périphérique correspondant au nom spécifié, ou la valeur null si aucun modèle n'est défini. L'exemple suivant montre comment récupérer des modèles de périphériques et déterminer si leur état est null.
public override void CreateDefaultTemplatedUI(bool doDataBind) { ITemplate headerTemplate = GetTemplate(Constants.HeaderTemplateTag); ITemplate footerTemplate = GetTemplate(Constants.FooterTemplateTag); ITemplate scriptTemplate = GetTemplate(Constants.ScriptTemplateTag); if (headerTemplate != null) { _headerContainer = new TemplateContainer(); headerTemplate.InstantiateIn(_headerContainer); _headerContainer.EnablePagination = false; Controls.AddAt(0, _headerContainer); } if (footerTemplate != null) { _footerContainer = new TemplateContainer(); footerTemplate.InstantiateIn(_footerContainer); _footerContainer.EnablePagination = false; Controls.Add(_footerContainer); } if (scriptTemplate != null) { _scriptContainer = new TemplateContainer(); scriptTemplate.InstantiateIn(_scriptContainer); _scriptContainer.EnablePagination = false; } }
Le tableau suivant décrit les modèles disponibles via le contrôle Form. Le contrôle Form prend en charge à la fois les ensembles de modèles spécifiques au périphérique et ceux qui sont indépendants du périphérique.
Modèle |
Description |
---|---|
Modèle d'en-tête |
Le modèle d'en-tête est rendu en haut du formulaire. Si le formulaire est paginé sur plusieurs écrans, chacun d'eux contient l'en-tête. Le modèle d'en-tête peut faire partie d'un ensemble de modèles indépendant du périphérique. Si l'ensemble de modèles est indépendant du périphérique, le modèle d'en-tête contient des contrôles mobiles. |
Modèle de pied de page |
Le modèle de pied de page est rendu au bas du formulaire. Si le formulaire est paginé sur plusieurs écrans, chacun d'eux contient le pied de page. Le modèle de pied de page peut faire partie d'un ensemble de modèles indépendant du périphérique. Si l'ensemble de modèles est indépendant du périphérique, le modèle de pied de page contient des contrôles mobiles. |
Modèle de script |
Le modèle de script est rendu en haut du formulaire. Si le formulaire est paginé sur plusieurs écrans, chacun d'eux contient le modèle de script. Le code contenu dans le modèle de script est ajouté directement après la balise d'ouverture <head> sur les périphériques HTML, et directement après la balise d'ouverture <card> sur les périphériques WML. |
Ces modèles sont également disponibles par programme. Pour plus d'informations, consultez les propriétés Footer, Header et Script.
Voir aussi
Concepts
Ensembles de modèles et contrôles basés sur un modèle
Implémentation du rendu basé sur un modèle
Autres ressources
Ajout de nouveaux adaptateurs de périphérique et d'une prise en charge des périphériques