Partager via


Utiliser le widget Sélecteur de personnes expérimental dans les compléments SharePoint

Vous pouvez utiliser le widget Sélecteur de personnes sur une page web, même si la page n’est pas hébergée dans SharePoint. Utiliser le widget Sélecteur de personnes dans vos compléments pour permettre aux utilisateurs de rechercher et de sélectionner des personnes et des groupes.

Avertissement

Les widgets web Office expérimentaux sont proposés pour simplifier les recherches et le partage de commentaires. Ne les utilisez pas en phase de production. Le comportement des widgets web Office peut considérablement changer dans les prochaines versions. Lisez les termes du contrat de licence des widgets web Office expérimentaux.

Vous pouvez utiliser le widget Sélecteur de personnes expérimental dans les compléments pour faciliter la recherche et la sélection de personnes et de groupes sur un client. Les utilisateurs commencent la saisie dans la zone de texte et le widget récupère les personnes dont le nom ou l'adresse de messagerie correspond au texte entré.


Widget Sélecteur de personnes résolvant une requête

Contrôle expérimental du sélecteur de personnes sur une page

Votre complément peut accéder aux personnes sélectionnées en lisant la propriété selectedItems du widget. Cette propriété est un tableau d'objets représentant des personnes ou des groupes. Le tableau suivant présente les propriétés disponibles de l'objet utilisateur.


Propriété Description
service Service de l’utilisateur ou du groupe.
displayName Nom d’affichage de l’utilisateur ou du groupe.
email Adresse e-mail de l’utilisateur ou du groupe.
isResolved Indique si le widget a réussi à résoudre le texte du widget avec un utilisateur ou un groupe du client.
jobTitle Fonction de l’utilisateur.
loginName Nom de connexion de l’utilisateur ou du groupe.
mobile Numéro de téléphone mobile de l’utilisateur ou du groupe.
principalId ID de principal de l’utilisateur ou du groupe.
principalType Indique si l'élément est un utilisateur ou un groupe. La valeur est 1 dans le cas d'un utilisateur, 4 dans le cas d'un groupe.
sipAddress Adresse SIP de l’utilisateur ou du groupe.
text Titre du texte du nom d’utilisateur ou de groupe.

Le widget Sélecteur de personnes dispose d'un cache des entrées les plus récemment utilisées. Le cache stocke les cinq dernières entrées résolues par le widget.

Conditions préalables à l’utilisation des exemples de cet article

Pour utiliser les exemples de cet article, vous avez besoin des éléments suivants :

Utiliser le widget Sélecteur de personnes dans un complément SharePoint hébergé par un fournisseur

Dans cet exemple, une page simple hébergée en dehors de SharePoint déclare un widget Sélecteur de personnes à l’aide de balises. Cet exemple ne déclare pas d’options, mais vous pouvez consulter un exemple contenant des options dans la section Étapes suivantes.

Pour utiliser le widget Sélecteur de personnes, vous devez procéder comme suit :

  • Créer un Complément SharePoint et des projets web.

  • Créez un module sur le site web de complément. Cette étape garantit également qu’un site web de complément est créé lorsque les utilisateurs déploient le complément.

    Notes

    La bibliothèque inter-domaines nécessite l’existence d’un site web de complément. Le widget Sélecteur de personnes communique avec SharePoint via la bibliothèque inter-domaines.

  • Créez une page de complément qui déclare une instance de widget Sélecteur de personnes à l’aide de marques de révision.

Pour créer un Complément SharePoint et des projets web

  1. Ouvrez Visual Studio en tant qu’administrateur. (Pour cela, sélectionnez avec le bouton droit de la souris l’icône Visual Studio dans le menu Démarrer, puis sélectionnez Exécuter en tant qu’administrateur.)

  2. Créez un nouveau projet à l’aide du modèle Complément SharePoint. Le modèle Complément SharePoint se trouve sous Modèles > Visual C#, Office/SharePoint > Compléments.

  3. Fournissez l’URL du site web SharePoint que vous souhaitez utiliser pour le débogage.

  4. Sélectionnez Hébergement par le fournisseur comme option d’hébergement pour votre complément.

    Notes

    Vous pouvez également utiliser le widget Sélecteur de personnes avec d’autres options d’hébergement ou même avec des compléments Office ou votre propre site web.

  5. Sélectionnez Application Web Forms ASP.NET comme type de projet d'application web.

  6. Sélectionnez Windows Azure Access Control Service comme option d'authentification.

Pour créer un module sur le site web de complément

  1. Sélectionnez avec le bouton droit de la souris le projet de complément SharePoint dans l’Explorateur de solutions. Cliquez sur Ajouter > Nouvel élément.

  2. Sélectionnez Éléments Visual C# > Office/SharePoint > Module. Nommez votre module.

    Notes

    Si vous créez un complément hébergé par SharePoint, vous n’avez pas besoin de créer de module supplémentaire.

Pour ajouter une nouvelle page qui utilise le widget Sélecteur de personnes

  1. Sélectionnez le dossier Pages dans le projet web dans l’Explorateur de solutions.

  2. Copiez le code ci-dessous et collez-le dans un fichier ASPX du projet. Le code effectue les tâches suivantes :

    • Ajoute des références aux ressources et aux bibliothèques Office requises.

    • Initialise le runtime des contrôles.

    • Exécute la méthode renderAll du runtime des contrôles Office.

    • Déclare un espace réservé pour le widget Sélecteur de personnes.

    <!DOCTYPE html>
    <html>
    <head>
    <!-- IE9 or superior -->
        <meta http-equiv="X-UA-Compatible" content="IE=9" >
        <title>People Picker HTML Markup</title>
    
        <!-- Widgets Specific CSS File -->
        <link 
            rel="stylesheet" 
            type="text/css" 
            href="../Scripts/Office.Controls.css" 
        />
    
    <!-- Ajax, jQuery, and utils --> 
        <script 
            src=" https://ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js.js">
        </script>
        <script 
            src=" https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js">
        </script>
        <script type="text/javascript">
            // Function to retrieve a query string value.
            // For production purposes you may want to use
            //  a library to handle the query string.
            function getQueryStringParameter(paramToRetrieve) {
                var params =
                    document.URL.split("?")[1].split("&amp;");
                var strParams = "";
                for (var i = 0; i < params.length; i = i + 1) {
                    var singleParam = params[i].split("=");
                    if (singleParam[0] == paramToRetrieve)
                        return singleParam[1];
                }
            }
        </script>
    
    <!-- Cross-Domain Library and Office controls runtime -->
        <script type="text/javascript">
            //Register namespace and variables used through the sample
            Type.registerNamespace("Office.Samples.PeoplePickerBasic");
            //Retrieve context tokens from the querystring
            Office.Samples.PeoplePickerBasic.appWebUrl =
                decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
            Office.Samples.PeoplePickerBasic.hostWebUrl =
                decodeURIComponent(getQueryStringParameter("SPHostUrl"));
    
            //Pattern to dynamically load JSOM and and the cross-domain library
            var scriptbase =
                Office.Samples.PeoplePickerBasic.hostWebUrl + "/_layouts/15/";
    
            //Get the cross-domain library
            $.getScript(scriptbase + "SP.RequestExecutor.js",
                //Get the Office controls runtime and 
                //  continue to the createControl function
                function () {
                    $.getScript("../Scripts/Office.Controls.js", createControl)
                }
            );
        </script>
    
    <!--People Picker -->
        <script 
            src="../Scripts/Office.Controls.PeoplePicker.js" 
            type="text/javascript">
        </script>
    </head>
    <body>
        Basic People Picker sample (HTML markup declaration):
        <div 
                id="PeoplePickerDiv" 
                data-office-control="Office.Controls.PeoplePicker">
        </div>
    
        <script type="text/javascript">
            function createControl() {
                //Initialize Controls Runtime
                Office.Controls.Runtime.initialize({
                    sharePointHostUrl: Office.Samples.PeoplePickerBasic.hostWebUrl,
                    appWebUrl: Office.Samples.PeoplePickerBasic.appWebUrl
                });
    
                //Render the widget, this must be executed after the
                //placeholder DOM is loaded
                Office.Controls.Runtime.renderAll();
            }
        </script>
    </body>
    </html>
    
    

Notes

L’exemple de code précédent spécifie explicitement les URL des sites web hôtes et de complément pour initialiser le runtime des contrôles Office. Toutefois, si ces URL sont spécifiées respectivement dans les paramètres de chaîne de requête SPAppWebUrl et SPHostUrl, vous pouvez transmettre un objet vide. Le code tentera alors d’obtenir les paramètres automatiquement. Les paramètres SPAppWebUrl et SPHostUrl sont inclus dans la chaîne de requête quand vous utilisez le jeton {StandardTokens}.

L’exemple suivant montre comment transmettre un objet vide à la méthode d’initialisation :

// Initialize with an empty object and the code 
// will attempt to get the tokens from the
// query string directly.
Office.Controls.Runtime.initialize({});

Pour créer et exécuter la solution

  1. Sélectionnez la touche F5.

    Notes

    Lorsque vous sélectionnez F5, Visual Studio génère la solution, déploie le complément et ouvre la page des autorisations pour le complément.

  2. Sélectionnez le bouton Approuver.

  3. Sélectionnez l’icône de complément de la page de Contenu du site.

Pour télécharger cet exemple à partir de la galerie de code, consultez l’exemple de code relatif à l’utilisation du widget expérimental Sélecteur de personnes dans un complément.

Étapes suivantes

Cet article montre comment utiliser le widget Sélecteur de personnes dans votre complément à l'aide de code HTML. Vous pouvez également explorer les scénarios et détails suivants concernant le widget.

Utiliser JavaScript pour déclarer le widget Sélecteur de personnes

Selon vos préférences, vous pouvez utiliser JavaScript au lieu de HTML pour déclarer le widget. Dans ce cas, vous pouvez employer les balises suivantes en tant qu’espace réservé du widget.

<div id="PeoplePickerDiv"></div>

Utiliser le code JavaScript suivant d’instanciation du Sélecteur de personnes.

new Office.Controls.PeoplePicker(
    document.getElementById("PeoplePickerDiv"), {});

Pour obtenir un exemple de code qui montre comment effectuer les tâches, voir la page JSSimple.html de l'exemple de code relatif à l' utilisation du widget expérimental Sélecteur de personnes dans un complément.

Spécifier des options pour le widget

Vous pouvez spécifier des options pour le widget en utilisant l'attribut data-office-options dans la déclaration de widget. Le code HTML suivant montre comment spécifier des options pour le widget Sélecteur de personnes.

<div id="PeoplePickerDiv"
        data-office-control="Office.Controls.PeoplePicker"
        data-office-options='{
        "allowMultipleSelections" : true,
        "onChange" : handleChange,
        "placeholder" : "Check the count message, it changes when you add names..."
    }'>
</div>

Le code suivant montre comment spécifier des options lorsque vous déclarez le widget Sélecteur de personnes avec du code JavaScript.

new Office.Controls.PeoplePicker(
    document.getElementById("PeoplePickerDiv"), {
        allowMultipleSelections: true,
        placeholder: "Check the count message, it changes when you add names...",
        onChange: function (ctrl) {
            document.getElementById("count").textContent = 
ctrl.selectedItems.length.toString();
        }
    });

Vous pouvez également spécifier des gestionnaires d’événements pour les événements onChange, onAdded et onRemoved. Dans le code précédent, le gestionnaire d’événements pour l’événement onChange reçoit un seul paramètre ctrl, qui fait référence au widget.

Pour un exemple de la façon de spécifier des options, voir les pages MarkupOptions.html et JSOptions.html dans l'exemple de code relatif à l' utilisation du widget expérimental Sélecteur de personnes dans un complément.

Récupérer les personnes ou groupes sélectionnés dans le widget

Pour récupérer les personnes dans le widget, vous devez effectuer les tâches suivantes :

  • Obtenir une référence au widget.

  • Accéder à la propriété selectedItems du widget.

Vous pouvez obtenir une référence au widget à l'aide de la syntaxe suivante.

var pplPicker = document.getElementById("PeoplePickerDiv")._officeControl;

Vous pouvez également enregistrer une référence lorsque vous instanciez le widget.

var pplPicker = new Office.Controls.PeoplePicker(
                        document.getElementById("PeoplePickerDiv"), {});

La propriété selectedItems est un tableau d’objets représentant des personnes ou des groupes. Les personnes ou les groupes du tableau selectedItems peuvent être résolus ou non. Vous pouvez vérifier ceci en consultant la propriété isResolved. L’exemple suivant montre comment accéder à l’élément i dans le tableau et comment utiliser le nom de la personne ou du groupe.

var principal = pplPicker.selectedItems[i];
$("#msg").text(principal.text + " is selected in the control.");

Pour un exemple de la façon de récupérer les personnes ou groupes sélectionnés à partir du widget, voir la page demo.html de l'exemple de code de démonstration Office Web Widgets - Expérimental.

Personnaliser le style du widget

En tant que développeur, vous pouvez personnaliser l’apparence du widget. L’image suivante montre la hiérarchie HTML dans le widget après affichage. Le widget définit plusieurs classes portant le préfixe office-peoplepicker, que vous pouvez trouver et personnaliser dans la feuille de style Office.Controls.css.

Hiérarchie HTML dans le widget Sélecteur de personnes

Hiérarchie HTML dans le contrôle Sélecteur de personnes

Vous pouvez utiliser le widget expérimental Sélecteur de personnes pour sélectionner des personnes et des groupes dans votre client. Votre complément peut ensuite utiliser les principaux sélectionnés par vos utilisateurs. Faites-nous part de vos idées et commentaires sur le site Office Developer Platform UserVoice.

Voir aussi