在Sharepoint Designer中设置CustomAction
关于在SharepointDesigner中设置CustomAction的备 忘,没有啥逻辑性,只是一些知识点。
下面是用SPD的一些限制
- SPD中只能针对某List设置Custom Action,无法实现一次性为多个List或某一类List批量设置。
- 无法在Site Actions, SiteSetting等其他地方设置CustomAction。
- 无法实现根据当前是否有Items处于选择状态或其他因素启用或禁用CustomAction。
- ...
虽然有很多缺点,但是不需要编码,还是有很多用武之地的。
可以在以下5个地方添加Custom Action:
1. List Item Menu (LIM)
2. Display Form Ribbon
3. Edit Form Ribbon
4. New Form Ribbon
5. View Ribbon
2. Display Form Ribbon
3. Edit Form Ribbon
4. New Form Ribbon
5. View Ribbon
有以下三种CustomAction:
1. Navigate to Form
2. Initiate Workflow
3. Navigate to URL,可以在里面加入javascript,需要注意的是如果在你输入的URL中如果包含某个Workflow的名字,就会被SPD自动替换成Initiate workflow这种Action,我就遇到过这种情况,被折腾得很惨。
2. Initiate Workflow
3. Navigate to URL,可以在里面加入javascript,需要注意的是如果在你输入的URL中如果包含某个Workflow的名字,就会被SPD自动替换成Initiate workflow这种Action,我就遇到过这种情况,被折腾得很惨。
在CustomAction中可以使用一些token,如下表:
You can find further information on using tokens in SharePoint at
在Dialog中启动CustomAction
javascript:SP.UI.ModalDialog.showModalDialog({url:"{SiteUrl}/Lists/CustomList/DispForm.aspx?ID={ItemId}", title: "Custom Form"}); return false;
CMDUI.xml,这里面有系统内 置的Action的配置,是很好的参考资源
%SystemDrive%\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML\CMDUI.xml
Location ID
下表是默认的location,全部的LocationID,请参考:http://msdn.microsoft.com/en-us/library/ee537543.aspx
Ribbon Location | List or Library | Ribbon Control and Group ID |
---|---|---|
Display Form | List | Ribbon.ListForm.Display.Manage.Controls._children |
Library | Ribbon.ListForm.Display.Actions.Controls._children | |
Edit Form | List | Ribbon.ListForm.Edit.Actions.Controls._children |
Library | Ribbon.DocLibListForm.Edit.Actions.Controls._children | |
New Form | List | Ribbon.ListForm.Edit.Actions.Controls._children |
Library[*] | Ribbon.DocLibListForm.New.Actions.Controls._children | |
View Form | List | Ribbon.ListItem.Actions.Controls._children |
Library | Ribbon.Documents.Manage.Controls._children | |
Quick Step | List | Ribbon.ListItem.QuickSteps.Controls._children |
Library | Ribbon.Documents.QuickSteps.Controls._children |
Rights Mask
sequence number
0 代表在最前,可以在CMDUI.xml中得到内置Action的序列号
-------------------------------------------------------------
其他有用的link: