CommandUIHandler 元素
适用于:SharePoint 2016 |SharePoint Foundation 2013 |SharePoint Online |SharePoint Server 2013
定义命令处理程序。
定义
<CommandUIHandler
Command = "Text"
CommandAction = "Text"
EnabledScript = "Text"
/>
元素和属性
下面各部分介绍了属性、子元素和父元素。
Attributes
属性 | 说明 |
---|---|
命令 | 必填。 命令的名称。 此属性的值与定义控件的元素上的 Command 属性的值相匹配。 |
CommandAction | 必填。 要在调用此处理程序时执行的脚本语句。 Microsoft SharePoint Foundation 调用 eval 方法,并传入此属性的值。 属性的值可包含在呈现时转换的替代标记。 可识别以下标记:
|
EnabledScript | 注意: EnabledScript 属性不适用于 SharePoint 外接程序部署到主机 Web 的自定义操作。 一个脚本语句,用于确定命令是启用或禁用的。 脚本表达式应返回一个 布尔 值;如果启用命令,则返回 true ;否则返回 false 。 如果禁用功能区,命令将灰显且不可单击。 对于 CommandAction 属性,调用 eval 方法时会使用此属性的值作为参数。 EnabledScript 属性不支持为 CommandAction 属性介绍的替代标记。 |
子元素
无
父元素
出现次数
最小值: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>