Compartir a través de


Elemento CommandUIHandler

Se aplica a: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online | SharePoint Server 2013

Define el controlador de un comando.

Definición

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

Elementos y atributos

En las siguientes secciones se describen los atributos, elementos secundarios y elementos primarios.

Atributos

Atributo Description
Command Necesario. 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

Necesario. 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) tomado de la vista de lista.
  • {ItemUrl} - Dirección URL relativa a la web del elemento de lista (Url).
  • {RecurrenceId} - Identificador de un elemento recurrente (RecurrenceID).
  • {SiteUrl} - La dirección URL completa al sitio (url).
  • {ListId} - Id. (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 que está seleccionada actualmente en una vista de lista.
  • {SelectedItemId} - Identificador del elemento que está seleccionado actualmente en la vista de lista.
EnabledScript

Nota: El atributo EnabledScript no funciona en acciones personalizadas implementadas en la web host mediante un complemento de SharePoint.

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 principales

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