CommandUIHandler 要素

適用対象: SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013

コマンドのハンドラーを定義します。

定義

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

要素と属性

以下のセクションで、属性、子要素、親要素について説明します。

属性

属性 説明
コマンド 必須です。 コマンドの名前。 この属性の値は、コントロールを定義する要素の Command 属性の値に一致します。
CommandAction

必須です。 このハンドラーが呼び出されるときに実行されるスクリプト ステートメント。 Microsoft SharePoint Foundation は eval メソッドを呼び出し、この属性の値を渡します。

属性の値には、レンダリング時に変換される代替トークンを含めることができます。 以下のトークンが認識されます。

  • {ItemId} - リスト ビューから取得した ID (GUID)。
  • {ItemUrl} - リスト アイテムの Web 相対 URL (URL)。
  • {RecurrenceId} - 繰り返しアイテムの ID (RecurrenceID)。
  • {SiteUrl} - サイトへの完全修飾 URL (URL)。
  • {ListId} - リストの ID (GUID) (ID)。
  • {ListUrlDir} - サイトのサーバー相対 URL とリストのフォルダー。
  • {Source} - 完全修飾要求 URL。
  • {SelectedListId} - リスト ビューから現在選択されているリストの ID (GUID)。
  • {SelectedItemId} - リスト ビューから現在選択されている項目の ID。
EnabledScript

: EnabledScript 属性は、SharePoint アドインによってホスト Web にデプロイされたカスタム アクションでは機能しません。

コマンドが有効か無効かを判断するために実行されるスクリプト ステートメント。 スクリプト式は ブール 値を返す必要があります。コマンドが有効な場合は true 、有効でない場合は false を 返します。 リボンが無効になっている場合、コマンドは淡色表示され、クリックできません。

CommandAction 属性の場合と同様に、eval メソッドは、引数としてこの属性の値で呼び出されます。 EnabledScript 属性は、CommandAction 属性で説明されている代替トークンをサポートしません。

子要素

None

親要素

CommandUIHandlers

Occurrences

最小: 1

最大: 制約なし

次の例では、ボタン コマンドおよび対応するハンドラーが定義されます。

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