CommandUIHandler 要素
最終更新日: 2015年3月9日
適用対象: SharePoint Foundation 2010
この記事の内容
属性
子要素
親要素
出現回数
コマンドのハンドラーを定義します。
<CommandUIHandler
Command = "Text"
CommandAction = "Text"
EnabledScript = "Text"
/>
属性
属性 |
説明 |
---|---|
Command |
必須。コマンドの名前。この属性の値は、コントロールを定義する要素の Command 属性の値に一致します。 |
CommandAction |
必須。このハンドラーが呼び出されるときに実行されるスクリプト ステートメント。Microsoft SharePoint Foundation は、eval メソッドを呼び出し、この属性の値を渡します。 属性の値には、レンダリング時に変換される代替トークンを含めることができます。以下のトークンが認識されます。
|
EnabledScript |
オプション。コマンドが有効かどうかを確認するために実行するスクリプト ステートメント。スクリプト式は Boolean 値を返します。コマンドが有効な場合は、true を返し、そうでない場合は false を返します。リボンが無効な場合、コマンドは灰色表示になってクリックできません。 CommandAction 属性の場合と同様に、eval メソッドは、引数としてこの属性の値で呼び出されます。EnabledScript 属性は、CommandAction 属性で説明されている代替トークンをサポートしません。 |
子要素
なし
親要素
出現回数
最小: 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>