Élément CommandUIHandler

S’applique à : SharePoint 2016 | SharePoint Foundation 2013 | SharePoint En ligne | SharePoint Server 2013

Définit le gestionnaire d’une commande.

Définition

<CommandUIHandler
  Command = "Text"
  CommandAction = "Text"
  EnabledScript = "Text"
 />

Éléments et attributs

Les sections suivantes décrivent les attributs, les éléments enfants et les éléments parents.

Attributs

Attribut

Description

**Command**

Obligatoire. Nom d’une commande. La valeur de cet attribut correspond à la valeur d’un attribut **Command** sur un élément qui définit un contrôle.

**CommandAction**

Obligatoire. Instruction de script à exécuter lorsque ce gestionnaire est appelé. Microsoft SharePoint Foundation appelle la méthode **eval,** en passant la valeur de cet attribut.

La valeur de l’attribut peut contenir des jetons de substitution transformés lors du rendu. Les jetons suivants sont reconnus :

  • `{ItemId}` - ID (GUID) issu de l’affichage liste.

  • `{ItemUrl}` - URL relative web de l’élément de liste (URL).

  • `{RecurrenceId}` - ID d’un élément récurrent (RecurrenceID).

  • `{SiteUrl}` - L’URL complète du site (URL).

  • `{ListId}` - ID (GUID) de la liste (ID).

  • `{ListUrlDir}` - URL relative du serveur du site, ainsi que du dossier de la liste.

  • `{Source}` - URL de demande complète.

  • `{SelectedListId}` - ID (GUID) de la liste actuellement sélectionnée dans un affichage de liste.

  • `{SelectedItemId}` - ID de l’élément actuellement sélectionné dans l’affichage Liste.

**EnabledScript**

Facultatif.

**Remarque**: **l’attribut EnabledScript** ne fonctionne pas sur les actions personnalisées déployées sur le site web hôte par un SharePoint de contenu.

Instruction de script exécutée pour déterminer si la commande est activée ou désactivée. L’expression de script doit retourner une valeur **Boolean** (**true** si la commande est activée ou **false** si elle ne l’est pas). Si le Ruban est désactivé, les commandes sont estompées et l’utilisateur ne peut pas cliquer sur celles-ci.

Comme dans le cas de l’attribut **CommandAction**, la méthode **eval** est appelée avec la valeur de cet attribut comme argument. L’attribut **EnabledScript** ne prend pas en charge les jetons de substitution décrits pour l’attribut **CommandAction**.

Éléments enfants

Aucun

Éléments parents

CommandUIHandlers

Occurrences

Minimum : 1

Maximum : pas de limite

Exemple

L’exemple suivant définit une commande de bouton et un gestionnaire correspondant.

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <CustomAction
       Id="EmailContacts"
       RegistrationType="List"
       RegistrationId="105"
       Location="CommandUI.Ribbon">
        <CommandUIExtension>
          <CommandUIDefinitions>
            <CommandUIDefinition
             Location="Ribbon.ListItem.Actions.Controls._children">
              <Button
                Id="Ribbon.ListItem.Actions.Email"
                Alt="$Resources:core,E-Mail;"
                Sequence="55"
                Command="emailContacts"
                LabelText="$Resources:core,E-Mail;"
                Description="$Resources:core,E-Mail;"
                TemplateAlias="o1"/>
            </CommandUIDefinition>
          </CommandUIDefinitions>
          <CommandUIHandlers>
            <CommandUIHandler
             Command="emailContacts"
             CommandAction="javascript:
               function getItemIds()
               {
                 var itemIds = '';
                 var items = SP.ListOperation.Selection.getSelectedItems();
                 var item;
                 for(var i in items)
                 {
                   item = items[i];
                   if(itemIds != '')
                   {
                     itemIds = itemIds + ',';
                   }
                   itemIds = itemIds + item.id;
                 }
                 return itemIds;
               }
               function handleReadyStateChange()
               {
                 if (client.readyState == 4)
                 {
                   if (client.status == 200) 
                   {
                     // client.responseText is mailto string
                     window.location = ('mailto:' + client.responseText);
                   }
                 }
               }
               function invokeEmailContacts()
               {
                 var params = 'itemids=' + getItemIds(); 
                 // Posting to EmailContacts.ashx to get the mailto string
                 var site='{SiteUrl}'; 
                 var url = site + '/_layouts/emailcontacts.ashx?listId={ListId}';
                 client = null;
                 client = new XMLHttpRequest();
                 client.onreadystatechange =  handleReadyStateChange;
                 client.open('POST', url, true);         
                 client.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
                 client.setRequestHeader('Content-length', params.length);
                 client.send(params);
               }      
               invokeEmailContacts();"
             
          EnabledScript="javascript:
               function enableEmailContacts()
               {
                 var items = SP.ListOperation.Selection.getSelectedItems();
                 return (items.length > 0);
               }
               enableEmailContacts();"/>
          </CommandUIHandlers>
        </CommandUIExtension>
      </CustomAction>
    </Elements>