CommandUIHandler 要素

最終更新日: 2015年3月9日

適用対象: SharePoint Foundation 2010

この記事の内容
属性
子要素
親要素
出現回数

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

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

属性

属性

説明

Command

必須。コマンドの名前。この属性の値は、コントロールを定義する要素の 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

オプション。コマンドが有効かどうかを確認するために実行するスクリプト ステートメント。スクリプト式は Boolean 値を返します。コマンドが有効な場合は、true を返し、そうでない場合は false を返します。リボンが無効な場合、コマンドは灰色表示になってクリックできません。

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

子要素

なし

親要素

CommandUIHandlers

出現回数

最小: 1

最大: 制約なし

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

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