CommandUIHandler, élément

Dernière modification : mercredi 13 octobre 2010

S’applique à : SharePoint Foundation 2010

Dans cet article
Attributs
Éléments enfants
Éléments parents
Occurrences

Définit le gestionnaire d’une commande.

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

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 transmettant 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) provenant de l’affichage de liste.

  • {ItemUrl} : URL relative de site Web de l’élément de liste (Url).

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

  • {SiteUrl} : URL complète du site (Url).

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

  • {ListUrlDir} : URL relative de serveur du site et 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 de liste.

EnabledScript

Facultatif. 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="https://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>