Sharepoint -自定义字段类型

WSS 3.0 添加了新的可扩展字段类型。可通过使用 C# Visual Basic® 编写类来创建可扩展字段类型,该字段类型继承自其中一种内置 SharePoint 字段类型(如 SPFieldText SPFieldNumber )。可扩展字段类型也可以使用包含您所喜欢的 Web 控件的 ASP.NET 用户控件,对于控件初始化和验证,您可以使用在 ASP.NET 应用程序中所使用的相同技术。

MOSS里字段类型得到了广泛的应用,文档库,表单库,列表,内容类型都需要用到字段类型进行扩展。这里的字段类型也就是我们通常所指的像文本,数字,Bool,日期等类型。MOSS本身内置了很多字段类型(MOSS的版本不一样,看到的字段也会有点差别)

可是这些默认的字段类型有时候无法满足我们的需求,比如:

-更丰富的输入,显示UI

-更复杂的逻辑或数据合法性判断检测

因此需要我们去自定义开发满足用户需求的自定义字段类型
做了一个简单的Demo,验证Email格式的自定义字段类型
代码下载

一个标准的自定义字段类型,分为这么几个部分
(*为必须的):

1.       *字段类对应这个解决方案中的Email.Field.cs
它可以继承自某个内置的字段类型,比如文本类型SPFieldText, 也可以直接继承自最基础的类型SPField
常用的内置字段类型:
单行文本 – SPFieldText
多行文本 – SPFieldMultiLineText
数字 – SPFieldNumber
货币 – SPFieldCurrency
/ – SPFieldBoolean
日期 - SPFieldDateTime
选项(单选) - SPFieldChoice

2.       字段值类对应Email.Field.Value.cs

3.       字段UI    -EmailFieldRendering.ascx,也可以不用用户控件,直接render

4.       *字段定义文件 -fldtypes_Email.xml

xml文件中定义了关于该字段类型的一些基本信息,且必须以fldtypes_开头命名

    Name="TypeName">EmailField>

    <FieldName="ParentType">MultiColumnField>

<FieldName="TypeDisplayName">EmailField>

简单的说,一个自定义字段类型包含3个部分:assembly(dll),UI(ascx),description file(xml)

自定义字段类型部署:

1.       注册assembly(dll) GAC

2.       Copy UI用户控件 .ascx..."12"TEMPLATE"CONTROLTEMPLATES

3.       Copy 类型定义文件fldtypes_*.xml.."12"TEMPLATE"xml

4.       重启IIS iisreset

部署完之后,在创建栏的时候,就会看到我们开发的自定义字段类型了。

虽然自定义字段类型是很好用,但是就目前来说它还是有不足的地方:
我们知道MOSS 2007Office 2007之间几乎是做了无缝的整合,我们在用office 2007客户端打开MOSS文档库或列表库里的文档的时候,Office 2007里的文档信息面板会自动显示出该文档库或列表库里的MOSS内置字段类型创建的栏。而至少目前2007的版本它是不支持自定义字段类型的客户端支持。
还有一点就是自定义字段类型的值不能超过255个字符.

你可能感兴趣的:(Sharepoint -自定义字段类型)