CommandUIHandler-Element

Gilt für: SharePoint 2016 | SharePoint Foundation 2013 | SharePoint Online-| SharePoint Server 2013

Definiert den Handler für einen Befehl.

Definition

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

Elemente und Attribute

In den folgenden Abschnitten werden Attribute, untergeordnete und übergeordnete Elemente erläutert.

Attribute

Attribut Beschreibung
Befehl Erforderlich. Der Name eines Befehls. Der Wert dieses Attributs stimmt mit dem Wert eines Command-Attributs für ein Element überein, das ein Steuerelement definiert.
CommandAction

Erforderlich. Eine Skriptanweisung, die beim Aufruf dieses Handlers ausgeführt werden soll. Microsoft SharePoint Foundation ruft die eval-Methode auf und übergibt den Wert dieses Attributs.

Der Wert des Attributs kann Ersatztoken enthalten, die beim Rendering transformiert werden. Die folgenden Token werden erkannt:

  • {ItemId} – ID (GUID) aus der Listenansicht.
  • {ItemUrl} – Webrelative URL des Listenelements (URL).
  • {RecurrenceId} – ID eines wiederkehrenden Elements (RecurrenceID).
  • {SiteUrl} : Die vollqualifizierte URL zur Website (URL).
  • {ListId} – ID (GUID) der Liste (ID).
  • {ListUrlDir} – Serverrelative URL der Website sowie des Ordners der Liste.
  • {Source} : Vollqualifizierte Anforderungs-URL.
  • {SelectedListId} – ID (GUID) der Liste, die derzeit in einer Listenansicht ausgewählt ist.
  • {SelectedItemId} – ID des Elements, das derzeit in der Listenansicht ausgewählt ist.
EnabledScript

Hinweis: Das EnabledScript-Attribut funktioniert nicht für benutzerdefinierte Aktionen, die im Hostweb von einem SharePoint-Add-In bereitgestellt werden.

Eine Skript-Anweisung, die ausgeführt wird, um zu bestimmen, ob der Befehl aktiviert oder deaktiviert ist. Der Skriptausdruck sollte einen Boolean-Wert zurückgeben: true, falls der Befehl aktiviert ist, sonst false. Wenn das Menüband deaktiviert ist, werden Befehle ausgegraut und sind nicht klickbar.

Wie beim CommandAction-Attribut wird die eval-Methode mit dem Wert dieses Attributs als Argument aufgerufen. Für das EnabledScript-Attribut werden die für das CommandAction-Attribut beschriebenen Ersatztoken nicht unterstützt.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

CommandUIHandlers

Vorkommen

Minimum: 1

Maximum: Unbegrenzt

Beispiel

Im folgenden Beispiel werden ein Schaltflächenbefehl und ein entsprechender Handler definiert.

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