sharepoint 2013 自定义列表栏(一)

来源:互联网 发布:网络推手哪里找电话 编辑:程序博客网 时间:2024/05/18 13:05

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。请转到列表设置页删除此字段。切记