这里介绍内容类型,主要目的是用工作流任务内容类型,来定制工作流审批的表单页面。
一、VS开发内容类型简单介绍
1.1、内容类型元素
针对内容类型元素,MSDN上做了详细的分类描述,可以通过下面的各个元素的超链接查看。
<ContentType 元素 (ContentType)>
<RemoveFieldRef 元素 (ContentType)>
<XmlDocuments 元素 (ContentType)>
<XmlDocument 元素 (ContentType)>
<DocumentTemplate 元素 (ContentType)>
1.2、内容类型ID
内容类型的ID是一长串数字,看着头晕,其实是有规律的,按照以下两个规则可以构造一个有效的内容类型:
-
父内容类型 ID + 两个十六进制值(两个十六进制值不能为“00”)
-
父内容类型 ID +“00”+ 十六进制 GUID
下图展示了内容类型ID的结构图:
1.3、定制内容类型表单页面
在Vs2010的项目中,右键选择添加新项,找到Application页面,点击创建,如下图
创建好Form页面后,可以在内容类型里,设定表单为自定义页面路径。如下所示:
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
<Display>_layouts/xxx/Approve.aspx</Display>
<Edit>_layouts/xxx/Approve.aspx</Edit>
</FormUrls>
</XmlDocument>
</XmlDocuments>
二、定制工作流任务内容类型
2.1、新建内容类型
右键点击项目名称,点击“Add New Item”,出现下面的界面,选择Content Type,如下图所示:
点击Add,出现选择父内容类型的界面,选择"Task",如下图所示:
点击完成,添加完成,双击内容类型文件夹中的Elements.xml,默认生成的代码如下图所示:
可以到Task的ID是0x0108,生成的是0x010800029c8e3785f34bd29c80768da3f82c11,我在0x0108后面加了个01,表示父类型是工作流任务内容类型。
最后修改后的代码如下:
这里注意一下,<FieldRefs>使用的是父类型的字段,就不用填写了。
Inherits="TRUE",这个字段要么修改为False,要么删掉,或者FormUrl使用的仍然是默认的。
2.2、发布内容类型
新建完成后,点击Deploy,部署到目标站点上。
然后找到“工作流任务”列表,点击“设置”——高级设置——启动内容类型。
然后返回设置,点击“从现有网站内容类型添加”,找到自定义的内容类型,确定添加。
新建一个这个内容类型的项目,试试吧,看是否启用了新的页面。