Démonstration : création d’un adaptateur mobile
Dernière modification : vendredi 1 avril 2011
S’applique à : SharePoint Foundation 2010
Cette démonstration vous explique comment créer un adaptateur mobile pour le composant UserTasksWebPart fourni avec Microsoft SharePoint Foundation. Pour une description plus synthétique du processus de création d’un adaptateur de composant WebPart mobile, voir Procédure : créer un adaptateur mobile.
Conditions requises
Consultez la rubrique Outils de développement SharePoint Foundation et les rubriques associées et effectuez les tâches recommandées pour configurer votre environnement de développement. Cette démonstration suppose que vous avez exécuté les tâches recommandées dans Configurer des émulateurs d’appareils mobiles, Procédure : créer un outil pour obtenir la clé publique d'un assembly et Procédure : ajouter des emplacements d’outils à la variable d’environnement PATH.
Développement de l’adaptateur
Les procédures suivantes décrivent le processus de création d’un adaptateur mobile.
Configurer le projet d’adaptateur mobile
Dans Visual Studio, sélectionnez Nouveau, puis Projet dans le menu Fichier.
Dans la boîte de dialogue Nouveau projet, sélectionnez Visual C# dans la zone Types de projets, sélectionnez Bibliothèque de classes dans la zone Modèles et entrez MobileAdapters dans la zone Nom. Cliquez sur OK.
Cliquez avec le bouton droit sur le nœud Références dans l’Explorateur de solutions, cliquez sur Ajouter une référence et, tout en maintenant la touche CTRL enfoncée, sélectionnez System.Web, System.Web.Mobile et Microsoft.SharePoint dans l’onglet .NET de la boîte de dialogue Ajouter une référence. Cliquez sur OK.
Cliquez avec le bouton droit sur le nom du projet dans l’Explorateur de solutions et sélectionnez Propriétés.
Sous l’onglet Application de la boîte de dialogue Propriétés, entrez MyCompany.SharePoint.WebPartPages.MobileAdapters comme Nom de l’assembly et MyCompany.SharePoint.WebPartPages comme Espace de noms par défaut. Remplacez MyCompany par le nom de votre société. Tout au long de cette démonstration, remplacez MyCompany par le nom de votre société.
Cliquez sur Informations de l’assembly et apportez les changements nécessaires dans la boîte de dialogue Informations de l’assembly. Cette démonstration suppose que vous laissez les versions d’assembly et de fichier sur 1.0.0.0 et que vous ne modifiez pas le GUID.
Ouvrez l’onglet Signature, puis sélectionnez Signer l’assembly.
Choisissez <Nouveau...> dans la zone de liste déroulante Choisir un fichier de clé de nom fort.
Dans la boîte de dialogue Créer une clé de nom fort, tapez MobileAdapters.snk dans la zone Nom du fichier de clé, puis vérifiez que la case à cocher Protection... n’est pas activée. Cliquez sur OK.
Ouvrez l’onglet Événements de génération et tapez le code suivant dans la zone Ligne de commande de l’événement après génération. Ce code exécute un fichier de commandes que vous créerez lors d’une étape ultérieure.
cd "$(ProjectDir)" MobileAdapterPostBuild
Cliquez sur le bouton Enregistrer tous les fichiers de la barre d’outils.
Dans l’Explorateur de solutions, renommez le fichier Class1.cs comme UserTasksWebPartMobileAdapter.cs.
Créer le contrôle Adaptateur
Ouvrez le fichier UserTasksWebPartMobileAdapter.cs du projet s’il n’est pas déjà ouvert et ajoutez les instructions using suivantes.
using System.Web.UI.MobileControls; using Microsoft.SharePoint; using Microsoft.SharePoint.WebPartPages; using Microsoft.SharePoint.Utilities;
Imports System.Web.UI.MobileControls Imports Microsoft.SharePoint Imports Microsoft.SharePoint.WebPartPages Imports Microsoft.SharePoint.Utilities
Remplacez l’espace de noms par MyCompany.SharePoint.WebPartPages.MobileAdapters.
Remplacez la déclaration Class1 entière par le code suivant :
public class UserTasksWebPartMobileAdapter : WebPartMobileAdapter { }// end UserTasksWebPartMobileAdapter class
Public Class UserTasksWebPartMobileAdapter Inherits WebPartMobileAdapter End Class ' end UserTasksWebPartMobileAdapter class
Notez que votre nouvelle classe hérite de WebPartMobileAdapter.
Ajoutez la déclaration suivante de substitution de la méthode CreateControlsForDetailView().
protected override void CreateControlsForDetailView() { } // end CreateControlsForDetailView
Protected Overrides Sub CreateControlsForDetailView() End Sub ' end CreateControlsForDetailView
Commencez l’implémentation de CreateControlsForDetailView() par les lignes suivantes. Ce code crée une flèche pointant vers le bas à gauche du titre du composant WebPart. En passant LinkToSummaryView à la méthode d’assistance CreateWebPartIcon(WebPartMobileAdapter.WebPartIconLink), vous transformez cette flèche en commutateur sur les périphériques dont les navigateurs prennent en charge CSS et ECMAScript 1.0 ou supérieur. Lorsque l’utilisateur clique sur ce dernier, le composant WebPart est réduit à l’affichage de synthèse (si le navigateur ne prend en charge ni CSS ni ECMAScript 1.0 ou supérieur, une icône différente est affichée et un clic sur celle-ci ouvre une page avec l’affichage de synthèse du composant WebPart.
Image iconImage = this.CreateWebPartIcon(WebPartIconLink.LinkToSummaryView); iconImage.BreakAfter = false; this.Controls.Add(iconImage);
Dim iconImage As Image = Me.CreateWebPartIcon(WebPartIconLink.LinkToSummaryView) iconImage.BreakAfter = False Me.Controls.Add(iconImage)
Ajoutez les lignes ci-après pour afficher le titre par défaut du composant WebPart Tâches utilisateur, qui est « Tâches utilisateur » en caractères gras.
Label titleLabel = this.CreateWebPartLabel(); this.Controls.Add(titleLabel);
Dim titleLabel As Label = Me.CreateWebPartLabel() Me.Controls.Add(titleLabel)
Ajoutez les lignes suivantes pour rassembler les références aux objets que votre code utilisera dans sa logique de rendu. Remplacez CustomSite par le nom du site Web auquel vous accèderez à partir d’un périphérique mobile. Il peut s’agir de n’importe quel site contenant une liste des tâches SharePoint Foundation standard.
SPSite siteCollection = SPContext.Current.Site; SPUser currentUser = SPContext.Current.Web.CurrentUser; SPList taskList = siteCollection.AllWebs["CustomSite"].Lists["Tasks"]; SPListItemCollection allTasks = taskList.GetItems(taskList.DefaultView);
Dim siteCollection As SPSite = SPContext.Current.Site Dim currentUser As SPUser = SPContext.Current.Web.CurrentUser Dim taskList As SPList = siteCollection.AllWebs("CustomSite").Lists("Tasks") Dim allTasks As SPListItemCollection = taskList.GetItems(taskList.DefaultView)
Ajoutez la requête LINQ suivante. La clause where garantit que seules les tâches de l’utilisateur actuel seront incluses dans la vue mobile. La clause select envoie un nouveau type anonyme qui contient deux propriétés seulement. Les champs que l’adaptateur ne va pas afficher sont inutiles.
Notes
Ce code utilise LINQ to Objects et filtre les données (l’objet allTasks) qui sont déjà en mémoire. Pour empêcher réellement la transmission des éléments de liste et des champs superflus à partir de la base de données de contenu, vous devez utiliser le fournisseur LINQ to SharePoint. Les instructions d’utilisation de ce fournisseur rallongeraient cette démonstration et s’écarteraient de l’objectif central de celle-ci.
// Use LINQ to filter out other users ... var lightweightTasksOfUser = from SPListItem task in allTasks where task["AssignedTo"].ToString().EndsWith(currentUser.Name) select new {task.Title, Priority=task["Priority"]}; // ... and unneeded columns.
' Use LINQ to filter out other users ... Dim lightweightTasksOfUser = From task As SPListItem In allTasks Where task("AssignedTo").ToString().EndsWith(currentUser.Name) Select New With {Key task.Title, Key .Priority=task("Priority")} '... and unneeded columns.
Ajoutez une boucle foreach qui, une fois exécutée, affichera chaque élément de la liste des tâches de l’utilisateur actuel avec une limite égale à 3.
foreach (var lightweightTask in lightweightTasksOfUser) { } // end "for each lightweight task of the current user"
For Each lightweightTask In lightweightTasksOfUser Next lightweightTask ' end "for each lightweight task of the current user"
À l’intérieur de la boucle, ajoutez le code suivant pour afficher la puce d’élément de liste mobile SharePoint Foundation standard. Le code utilise la syntaxe d’initialiseur d’objet, qui nécessite C# 3.0, pour initialiser les propriétés. Mais vous pouvez aussi utiliser des instructions d’assignation de propriétés distinctes.
Image taskIcon = new Image() { ImageUrl = this.ItemBulletIconUrl, BreakAfter = false}; this.Controls.Add(taskIcon);
Dim taskIcon As New Image() With {.ImageUrl = Me.ItemBulletIconUrl, .BreakAfter = False} Me.Controls.Add(taskIcon)
Ajoutez le code suivant pour afficher le nom de la tâche. Notez que la propriété Font() est en lecture seule et comporte des sous-propriétés accessibles en écriture, dont Bold et Size. Ces sous-propriétés ne peuvent pas être définies avec la syntaxe d’initialiseur d’objet.
Label taskTitle = new Label { Text = lightweightTask.Title, BreakAfter = false}; taskTitle.Font.Bold = BooleanOption.True; this.Controls.Add(taskTitle);
Dim taskTitle As Label = New Label With {.Text = lightweightTask.Title, .BreakAfter = False} taskTitle.Font.Bold = BooleanOption.True Me.Controls.Add(taskTitle)
Ajoutez le code suivant afin de faire suivre le titre de la tâche par la priorité de la tâche dans une police de petite taille. Notez que la propriété Priority auquel il fait référence a été créée ad hoc dans le type anonyme déclaré par la requête LINQ. Dans C#, vous devez faire référence à cette valeur par task["Priority"], où task est une référence à un objet SPListItem de la liste Tâches.
Label priority = new Label() { Text = " " + lightweightTask.Priority }; priority.Font.Size = FontSize.Small; this.Controls.Add(priority);
Dim priority As New Label() With {.Text = " " & lightweightTask.Priority} priority.Font.Size = FontSize.Small Me.Controls.Add(priority)
Ajoutez le code suivant pour insérer une ligne vide après chaque tâche.
this.Controls.Add(new LiteralText());
Me.Controls.Add(New LiteralText())
Enfin, ajoutez la structure if suivante pour limiter le nombre de tâches affichées à 3, et pour afficher un lien vers la liste complète des tâches de l’utilisateur dans le cas où il existe plus de 3 tâches. Notez à nouveau l’utilisation de la syntaxe d’initialiseur d’objet.
// Render no more than 3 tasks, but provide link to others. if (itemCount++ >= 3) { Link moreItemLink = new Link { Text = "All my tasks", href = SPMobileUtility.GetViewUrl(taskList, taskList.Views["My Tasks"]) }; this.Controls.Add(moreItemLink); break; } // end "if limit has been reached"
' Render no more than 3 tasks, but provide link to others. If itemCount >= 3 Then itemCount += 1 Dim moreItemLink As Link = New Link With {.Text = "All my tasks", .href = SPMobileUtility.GetViewUrl(taskList, taskList.Views("My Tasks"))} Me.Controls.Add(moreItemLink) Exit For End If ' end "if limit has been reached" itemCount += 1
Ajoutez l’instruction suivante juste avant le début de la boucle foreach pour initialiser la variable itemCount.
Int16 itemCount = 1;
Dim itemCount As Int16 = 1
La déclaration entière doit maintenant ressembler à celle indiquée dans cet exemple de code.
protected override void CreateControlsForDetailView() { Image iconImage = this.CreateWebPartIcon(WebPartIconLink.LinkToSummaryView); iconImage.BreakAfter = false; this.Controls.Add(iconImage); Label titleLabel = this.CreateWebPartLabel(); this.Controls.Add(titleLabel); SPSite siteCollection = SPContext.Current.Site; SPUser currentUser = SPContext.Current.Web.CurrentUser; SPList taskList = siteCollection.AllWebs["MyGPSite"].Lists["Tasks"]; SPListItemCollection allTasks = taskList.GetItems(taskList.DefaultView); // Use LINQ to filter out other users ... var lightweightTasksOfUser = from SPListItem task in allTasks where task["AssignedTo"].ToString().EndsWith(currentUser.Name) select new {task.Title, Priority=task["Priority"]}; // ... and unneeded columns. Int16 itemCount = 1; foreach (var lightweightTask in lightweightTasksOfUser) { Image taskIcon = new Image() { ImageUrl = this.ItemBulletIconUrl, BreakAfter = false}; this.Controls.Add(taskIcon); Label taskTitle = new Label { Text = lightweightTask.Title, BreakAfter = false}; taskTitle.Font.Bold = BooleanOption.True; this.Controls.Add(taskTitle); Label priority = new Label() { Text = " " + lightweightTask.Priority }; priority.Font.Size = FontSize.Small; this.Controls.Add(priority); this.Controls.Add(new LiteralText()); // Render no more than 3 tasks, but provide link to others. if (itemCount++ >= 3) { Link moreItemLink = new Link { Text = "All my tasks", href = SPMobileUtility.GetViewUrl(taskList, taskList.Views["My Tasks"]) }; this.Controls.Add(moreItemLink); break; } // end "if limit has been reached" } // end "for each lightweight task of the current user" } // end CreateControlsForDetailView
Protected Overrides Sub CreateControlsForDetailView() Dim iconImage As Image = Me.CreateWebPartIcon(WebPartIconLink.LinkToSummaryView) iconImage.BreakAfter = False Me.Controls.Add(iconImage) Dim titleLabel As Label = Me.CreateWebPartLabel() Me.Controls.Add(titleLabel) Dim siteCollection As SPSite = SPContext.Current.Site Dim currentUser As SPUser = SPContext.Current.Web.CurrentUser Dim taskList As SPList = siteCollection.AllWebs("MyGPSite").Lists("Tasks") Dim allTasks As SPListItemCollection = taskList.GetItems(taskList.DefaultView) ' Use LINQ to filter out other users ... Dim lightweightTasksOfUser = From task As SPListItem In allTasks Where task("AssignedTo").ToString().EndsWith(currentUser.Name) Select New With {Key task.Title, Key .Priority = task("Priority")} '... and unneeded columns. Dim itemCount As Int16 = 1 For Each lightweightTask In lightweightTasksOfUser Dim taskIcon As New Image() With {.ImageUrl = Me.ItemBulletIconUrl, .BreakAfter = False} Me.Controls.Add(taskIcon) Dim taskTitle As Label = New Label With {.Text = lightweightTask.Title, .BreakAfter = False} taskTitle.Font.Bold = BooleanOption.True Me.Controls.Add(taskTitle) Dim priority As New Label() With {.Text = " " & lightweightTask.Priority} priority.Font.Size = FontSize.Small Me.Controls.Add(priority) Me.Controls.Add(New LiteralText()) ' Render no more than 3 tasks, but provide link to others. If itemCount >= 3 Then itemCount += 1 Dim moreItemLink As Link = New Link With {.Text = "All my tasks", .href = SPMobileUtility.GetViewUrl(taskList, taskList.Views("My Tasks"))} Me.Controls.Add(moreItemLink) Exit For End If ' end "if limit has been reached" itemCount += 1 Next lightweightTask ' end "for each lightweight task of the current user" End Sub ' end CreateControlsForDetailView
Sélectionnez Générer la solution dans le menu Générer. Bien que vous n’ayez pas tout à fait terminé, vous devez compiler l’assembly à ce stade pour pouvoir générer un jeton de clé publique.
Inscrire l’adaptateur mobile dans le fichier compat.browser
Ouvrez le fichier \\Inetpub\wwwroot\wss\VirtualDirectories\80\App_Browsers\compat.browser dans un éditeur de texte ou dans Visual Studio et faites défiler jusqu’à l’élément <browser> dont la valeur de l’attribut refID est « default ». (Au besoin, remplacez « 80 » dans l’URL par le port de l’application Web que vous ciblez.)
À l’intérieur de l’élément <controlAdapters>, ajoutez l’élément enfant suivant.
<adapter controlType="Microsoft.SharePoint.WebPartPages.UserTasksWebPart, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" adapterType="MyCompany.SharePoint.WebPartPages.MobileAdapters.UserTasksWebPartMobileAdapter, MyCompany.SharePoint.WebPartPages.MobileAdapters, Version=1.0.0.0, Culture=neutral, PublicKeyToken=yourAssemblyPublicToken" />
Remplacez MyCompany par le nom de votre société dans les deux emplacements. Remplacez yourAssemblyPublicKeyToken par le jeton de clé publique de votre assembly. Pour obtenir celui-ci, cliquez sur l’option Obtenir la clé publique d’assembly dans le menu Outils de Visual Studio ; la clé apparaîtra dans la fenêtre Sortie (si l’option n’apparaît pas, voir Procédure : créer un outil pour obtenir la clé publique d'un assembly).
Notes
Si votre environnement de développement est une batterie de serveurs multiserveur, vous devez modifier le fichier compat.browser sur tous les serveurs. Pour plus d’informations sur la réalisation de cette procédure par programme, voir Procédure : exécuter le code sur tous les serveurs Web.
Inscrire l’adaptateur en tant que contrôle sécurisé sur l’ordinateur de développement
Cliquez avec le bouton droit sur le nom du projet dans l’Explorateur de solutions, pointez sur Ajouter, puis sélectionnez Nouvel élément.
Notes
Si vous êtes en train de développer sur une batterie de serveurs comprenant plusieurs serveurs Web frontaux, n’utilisez pas cette procédure. Au lieu de cela, déployez l’adaptateur avec une solution SharePoint Foundation et ajoutez un élément <SafeControl> dans le fichier manifest.xml de la solution. Pour plus d’informations sur les solutions SharePoint Foundation, voir Utilisation de solutions et les rubriques associées.
Dans la boîte de dialogue Ajouter un nouvel élément, ajoutez un fichier XML nommé webconfig.MyCompany.xml, où MyCompany est le nom de votre société, puis cliquez sur Ajouter.
Ajoutez le code suivant au fichier.
<action> <remove path="configuration/SharePoint/SafeControls/SafeControl[@Assembly=MyCompany.SharePoint.WebPartPages.MobileAdapters3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=yourAssemblyPublicKeyToken']" /> <add path="configuration/SharePoint/SafeControls"> <SafeControl Assembly="MyCompany.SharePoint.WebPartPages.MobileAdapters3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=yourAssemblyPublicKeyToken" Namespace="MyCompany.SharePoint.WebPartPages.MobileAdapters3" TypeName="*" Safe="True" AllowRemoteDesigner="True" /> </add> </action>
Remplacez MyCompany par le nom de votre société aux trois emplacements. Remplacez yourAssemblyPublicKeyToken aux deux emplacements par le jeton de clé publique que vous avez utilisé dans le balisage du fichier compat.browser.
Enregistrez le fichier. Le fichier de commandes que vous allez créer dans la procédure suivante exécutera deux actions à chaque régénération. L’action <add> inscrira votre adaptateur en tant que contrôle sécurisé en ajoutant l’élément <SafeControl> spécifié à tous les fichiers web.config à la racine de toutes les applications Web sur votre ordinateur de développement. L’action <remove> ne fera rien à la première exécution du fichier de commandes. Lors des exécutions suivantes, elle supprimera l’élément <SafeControl> ajouté lors de l’exécution précédente. Cela est nécessaire car des éléments <SafeControl> dupliqués peuvent endommager les composants WebPart dans SharePoint Foundation.
Créer un fichier de commandes après génération
Cliquez avec le bouton droit sur le nom du projet dans l’Explorateur de solutions, pointez sur Ajouter, puis sélectionnez Nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Fichier texte, nommez-le MobileAdapterPostBuild.bat, puis cliquez sur Ajouter.
Ouvrez le fichier et ajoutez-y les lignes suivantes.
Notes
Ce code suppose que vous avez suivi les recommandations de la section Procédure : ajouter des emplacements d’outils à la variable d’environnement PATH.
gacutil if bin\debug\MyCompany.SharePoint.WebPartPages.MobileAdapters.dll xcopy /y webconfig.MyCompany.xml "C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\CONFIG" stsadm –o copyappbincontent iisreset
Dans le menu Fichier, cliquez sur Enregistrer MobileAdapterPostBuild.bat sous...
Dans la boîte de dialogue Enregistrer le fichier sous, cliquez sur la flèche vers le bas en regard du bouton Enregistrer et sélectionnez Enregistrer avec codage.
Dans la boîte de dialogue Options d’enregistrement avancées, sélectionnez Alphabet occidental (Windows) – Page de codes 1252 dans la liste déroulante Codage, puis cliquez sur OK.
Ce fichier garantit que chaque fois que vous régénérez le projet, les dernières versions des fichiers de votre projet sont copiées dans l’emplacement adéquat et que votre classe d’adaptateur est enregistrée en tant que contrôle sécurisé. Il redémarre également SharePoint Foundation afin qu’il charge la version la plus récente de l’assembly.
Régénérer la solution
- Sélectionnez Régénérer la solution dans le menu Générer de Visual Studio.
Test de l’adaptateur
Les procédures suivantes décrivent comment tester l’adaptateur.
Créer une page de composants WebPart personnalisée avec un composant WebPart Tâches utilisateur
Dans un navigateur, rendez-vous sur le site Web auquel accéder à partir de périphériques mobiles. Il s’agit du site dont vous avez utilisé le nom pour remplacer CustomSite dans le code de la substitution de CreateControlsForDetailView().
Dans l’interface utilisateur de SharePoint Foundation, créez une page de composants WebPart et ajoutez-lui le composant WebPart Tâches utilisateur. Les étapes sont les suivantes :
Dans le menu Actions du site, sélectionnez Davantage d’options de création.
Sur la page Créer, cliquez sur Page de composants WebPart.
Sur la page Nouvelle page de composants WebPart, nommez la nouvelle page MyWPpage et sélectionnez le modèle de mise en page de votre choix.
Choisissez une bibliothèque de documents sur le site Web, par exemple Documents partagés, puis cliquez sur Créer. La nouvelle page est ouverte en mode édition.
Sélectionnez une zone WebPart quelconque sur la page, par exemple Colonne droite, puis cliquez sur Insérer sur le ruban d’édition.
Sur la page qui s’ouvre, cliquez sur Personnes dans la zone Catégories.
Sélectionnez Tâches utilisateur dans la zone Composants WebPart, puis cliquez sur Ajouter.
Cliquez sur Arrêter la modification pour voir à quoi la page ressemble avec le composant WebPart Tâches utilisateur. Puis, passez à la procédure suivante.
Remplir la liste de tâches du site Web
À partir d’une page de site quelconque standard du site Web, cliquez sur Tâches sur la barre de navigation à gauche.
Sur la page Tâches, ouvrez l’onglet Éléments.
Cliquez sur Nouvel élément sur le ruban pour ouvrir le formulaire Nouvel élément. Remplissez-le pour créer une nouvelle tâche et cliquez sur Enregistrer. Répétez cette étape pour créer plusieurs tâches pour plusieurs utilisateurs. Attribuez 4 tâches ou plus à au moins un utilisateur.
Ouvrez l’onglet Parcourir pour voir la liste remplie.
Installer, configurer et utiliser un émulateur d’appareil mobile
Si vous ne l’avez pas encore fait, installez et configurez un émulateur d’appareil mobile, comme expliqué dans Configurer des émulateurs d’appareils mobiles, sur un ordinateur avec une connexion réseau à votre serveur ou batterie de serveurs de développement. Cet ordinateur peut être votre ordinateur de développement.
Connectez-vous à l’ordinateur en tant que l’un des utilisateurs auquel vous avez attribué des tâches et lancez un navigateur sur l’émulateur comme expliqué dans la procédure Lancer un émulateur de la rubrique Configurer des émulateurs d’appareils mobiles.
Accédez à votre page de composants WebPart personnalisée. Les étapes diffèrent en fonction du type de site Web. Généralement, la page d’accueil possède un lien Afficher tout le contenu du site. La page correspondante possède à son tour un lien vers les bibliothèques de documents du site, comme Documents partagés. La liste Tous les documents de la bibliothèque de documents contient un lien vers votre page de composants WebPart personnalisée.
La version mobile de la page s’ouvre avec tous les composants WebPart mobiles en mode réduit (non fermé). Les composants WebPart sans adaptateur mobile, ou qui ont été fermés sur la version normale (non mobile) de la page de composants WebPart, ne sont pas affichés du tout. Dans SharePoint Foundation, la fermeture d’un composant WebPart signifie son masquage (si aucun composant WebPart sur la page ne remplit les conditions requises pour la visibilité mobile, la page ne s’ouvre pas ; au lieu de cela, la version mobile de la page Tout le contenu du site s’ouvre). La figure 1 montre une page de composants WebPart sur laquelle le composant WebPart Tâches utilisateur est le seul non fermé et qui dispose d’un adaptateur mobile. Cette image a été produite avec un émulateur Windows Mobile 5.0 pour Pocket PC.
Figure 1. Le composant WebPart Tâches utilisateur en mode réduit sur un appareil mobile.
Cliquez sur la flèche en regard de Tâches utilisateur pour développer le composant WebPart. La figure 2 affiche le composant WebPart, après son adaptation comme expliqué dans cette rubrique, développé pour un utilisateur auquel moins de 4 tâches sont attribuées. Notez l’absence du lien Toutes mes tâches en fin de liste. Notez également que seules les tâches de l’utilisateur actuel sont répertoriées.
Figure 2. Le composant WebPart Tâches utilisateur en mode développé sur un appareil mobile.
La figure 3 affiche le composant WebPart développé pour un utilisateur auquel plus de 3 tâches sont attribuées. Notez que seulement 3 tâches sont répertoriées, suivies du lien Toutes mes tâches. Celui-ci permet d’ouvrir la vue Mes tâches de la liste Tâches. Notez à nouveau que seules les tâches de l’utilisateur actuel sont répertoriées.
Figure 3. Le composant WebPart Tâches utilisateur en mode développé pour un utilisateur auquel plus de 3 tâches sont affectées.