1)在Vs2012 中创建一个空SharePoint 2013空项目,然后添加一个新的公开类,并使此类继承Microsoft.SharePoint.SPFieldText.
2)创建自定义字段类
必须将自定义字段类定义为公共类,并且必须提供两个非默认构造函数。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint;
namespace CustomFileds
{
public class Member:SPFieldText
{
public Member(SPFieldCollection fields, string fieldName)
: base(fields, fieldName)
{
}
public Member(SPFieldCollection fields, string typeName, string displayName)
: base(fields, typeName, displayName)
{
}
public override string DefaultValue
{
get
{
return base.DefaultValue;
}
set
{
base.DefaultValue = value;
}
}
}
}
3)创建字段类型部署文件
字段类型部署文件包含自定义字段类型的协作应用程序标记语言 (CAML) 定义。您必须按 fieldtypes*.xml
的模式为此文件命名,然后将此文件部署到 14\TEMPLATE\XML
目录中。在此示例中,文件的名称为 fldtypes_CustomFields.xml。具体作法:
1)添加一个sharepoint 映射文件夹,展开template,添加xml文件夹
2)在Xml文件夹下添加fldtypes_CustomFields.xml文件。
Xml文件内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<FieldTypes>
<FieldType>
<Field Name="TypeName">Member</Field>
<Field Name="ParentType">Text</Field>
<Field Name="TypeDisplayName">Member</Field>
<Field Name="TypeShortDescription">Member</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="FieldTypeClass">
CustomFileds.Member,
$SharePoint.Project.AssemblyFullName$
</Field>
</FieldType>
</FieldTypes>
注意:借助于 Microsoft Visual Studio 2010 中的 SharePoint 开发工具,可以用 $SharePoint.Project.AssemblyFullName$ 标记替代实际程序集名称。当您将源文件编译为解决方案包时,SharePoint 工具会将此标记替换为程序集名称。
4)部署该程序,我们打开一个自定义列表或者文档库,在创建栏那里,我们就能看到多了一个Member控件类型。
总结:
在编写Xml文件的时候,最好是复制过去,手写有时候会出错。我就是因为手写,所以报
未正确安装字段类型 Member。请转到列表设置页删除此字段。切记