Partager via


Prise en charge de la pagination

Mise à jour : novembre 2007

Les périphériques sans fil utilisent des écrans dont les fonctionnalités diffèrent considérablement. Certains écrans proposent la prise en charge d'un affichage de contenu très riche. D'autres n'affichent que quelques lignes de texte monochrome. Le contenu destiné aux écrans basiques doit souvent être paginé de façon à être affiché correctement. Les contrôles mobiles ASP.NET permettent à votre application de paginer automatiquement les formulaires en pages appropriées pour le périphérique cible. Cette section décrit la façon dont les contrôles mobiles peuvent participer au processus de pagination.

Présentation du système de pondération de la pagination

Le processus de pagination des formulaires repose sur un système de pondération. Chaque adaptateur de page retourne un poids optimal de la page pour un formulaire, par l'intermédiaire de la propriété OptimumPageWeight.

Un jeu d'adaptateurs de périphérique peut fournir des poids optimaux pour une page et pour chaque contrôle. Pour ces poids, le choix des unités est flexible. Bien que vous puissiez coordonner une convention appropriée pour les unités de poids, si vous suivez le système d'unité par défaut, vous pouvez utiliser les poids par défaut des contrôles pour un jeu d'adaptateurs de périphérique.

Remarque :

Le système d'unité par défaut est basé sur l'équivalence entre une ligne et 100 unités, comme indiqué par la constante DefaultWeight de la classe ControlPager.

Lors de la pagination, ASP.NET itère sur l'arborescence du contrôle, calculant les poids et assignant les numéros de page. Après le rendu de la page active, ASP.NET procède à la pagination correcte. Vous pouvez déterminer la ou les pages assignées d'un contrôle en utilisant les propriétés FirstPage et LastPage.

L'algorithme de pagination prend en compte la définition du contrôle qui empêche la pagination sur plusieurs pages. Par exemple, il est possible que vous ne souhaitiez pas que le contenu d'un contrôle Panel puisse être réparti sur plusieurs pages. Pour éviter que le contenu d'un contrôle ne soit paginé, substituez la propriété PaginateChildren dans l'implémentation du contrôle et retournez la valeur false.

Prise en charge de la pagination de base

Pour garantir une pagination correcte, un contrôle doit substituer la propriété VisibleWeight, puis retourner un poids. Le poids par défaut est 100, ce qui correspond à une ligne dans le système d'unité par défaut.

De même, si vous souhaitez que le poids du contrôle soit spécifique au périphérique, l'adaptateur de contrôle peut remplacer la propriété VisibleWeight par la valeur appropriée pour un périphérique particulier. L'implémentation de la classe de base MobileControl de la propriété VisibleWeight extrait cette valeur de l'adaptateur de périphérique.

Prise en compte de la pagination interne et personnalisée au moment du design

Certains contrôles utilisent la pagination pour répartir le contenu des contrôles sur plusieurs pages de formulaire, même lorsqu'ils ne contiennent pas des contrôles enfants. Par exemple, un contrôle List possédant un grand nombre d'éléments peut se paginer sur plusieurs pages de formulaire. Nous appelons cela la pagination interne. Les contrôles capables de pagination interne sont aussi capables de pagination personnalisée. La pagination personnalisée propose une fonction de rappel vers l'application qui lui permet de fournir les données nécessaires au contrôle à la demande et qui regroupe les données liées.

Comment éviter la pagination

La pagination repartit le contenu des contrôles sur plusieurs pages. Dans certains cas, il est possible que vous souhaitiez éviter la pagination d'un contrôle sur plusieurs pages. Ce pourrait être le cas pour un contrôle Panel. Le contrôle Panel a une propriété Paginate qui a la valeur false par défaut.

Voir aussi

Autres ressources

Ajout de nouveaux adaptateurs de périphérique et d'une prise en charge des périphériques