Freigeben über


CommandUIHandler-Element

Letzte Änderung: Mittwoch, 13. Oktober 2010

Gilt für: SharePoint Foundation 2010

Inhalt dieses Artikels
Attribute
Untergeordnete Elemente
Übergeordnete Elemente
Vorkommen

Definiert den Handler für einen Befehl.

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

Attribute

Attribut

Beschreibung

Command

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. Von Microsoft SharePoint Foundation wird die eval-Methode aufgerufen und dabei der Wert dieses Attributs übergeben.

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 Serienelements (RecurrenceID).

  • {SiteUrl} – Die voll gekennzeichnete URL der Website (Url).

  • {ListId} – ID (GUID) der Liste (ID).

  • {ListUrlDir} – Serverrelative URL der Website plus Ordner der Liste.

  • {Source} – Voll qualifizierte URL der Anforderung.

  • {SelectedListId} – ID (GUID) der aktuell ausgewählten Liste aus einer Listenansicht.

  • {SelectedItemId} – ID des aktuell ausgewählten Elements aus der Listenansicht.

EnabledScript

Optional. Eine Skriptanweisung, mit der bestimmt wird, 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

Mindestvorkommen: 1

Maximum: Unbegrenzt

Beispiel

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

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