Compartir a través de


Elemento CommandUIHandler

Última modificación: miércoles, 13 de octubre de 2010

Hace referencia a: SharePoint Foundation 2010

En este artículo
Atributos
Elementos secundarios
Elementos primarios
Repeticiones

Define el controlador de un comando.

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

Atributos

Atributo

Descripción

Command

Obligatorio. El nombre de un comando. El valor de este atributo coincide con el valor de un atributo Command en un elemento que define un control.

CommandAction

Obligatorio. Instrucción de script que se ejecuta cuando se invoca este controlador. Microsoft SharePoint Foundation llama al método eval y pasa el valor de este atributo.

El valor del atributo puede contener los tokens de sustitución que se transforman en la representación. Se reconocen los tokens siguientes:

  • {ItemId}: identificador (GUID) que se toma de la vista de lista.

  • {ItemUrl}: dirección URL relativa al sitio web del elemento de lista (Url).

  • {RecurrenceId}: identificador de un elemento periódico (RecurrenceID).

  • {SiteUrl}: dirección URL completa al sitio (Url).

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

  • {ListUrlDir}: dirección URL relativa al servidor del sitio más la carpeta de la lista.

  • {Source}: dirección URL de solicitud completa.

  • {SelectedListId}: identificador (GUID) de la lista actualmente seleccionada desde una vista de lista.

  • {SelectedItemId}: identificador del elemento actualmente seleccionado en la vista de lista.

EnabledScript

Opcional. Instrucción de script que se ejecuta para determinar si el comando está habilitado o deshabilitado. La expresión del script debería devolver un valor Boolean, true si el comando está habilitado y, si no lo está, false. Si la cinta de opciones está deshabilitada, los comandos están atenuados y no se puede hacer clic en ellos.

Al igual que con el atributo CommandAction, se llama al método eval con el valor de este atributo como argumento. El atributo EnabledScript no es compatible con los tokens de sustitución que se describen para el atributo CommandAction.

Elementos secundarios

Ninguno

Elementos primarios

Elemento CommandUIHandlers

Repeticiones

Mínimo: 1

Máximo: sin límite

Ejemplo

En el ejemplo siguiente se define un comando de botón y el controlador correspondiente.

<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>