我之前发过一篇文章:SharePoint 2007 自定义列表字段类型功略,介绍了如何在Windows SharePoint Services v3.0上创建自定义列表字段类型。这个文章的例子是一个规范化的美国地址类型,虽然基本涵盖了此技术所需的各个方面,但实用性不是很强。
如果我们能创建一种带正则表达式约束的文本字段,其值可由正则表达式自动做有效性判断,那么各种各样灵活的需求都可以满足了。比如身份证号字段、电子邮件字段、网络地址字段等等等等。
如图,我们在一个列表(Email contacts list)中增加一个栏,名称为“Email Address”,类型为我们预先部署好的“RegEx Text”:
作为样例,我们约束这个字段的值必须符合电子邮件地址样式,所以,将正则表达式填为:
(\w)+[@]{1}(\w)+[.]{1,3}(\w)+
回到列表,添加或编辑条目时,如果在Email Address栏中填写一个不符合电子邮件规则的地址,点击确定时表单则会自动报错:
如果填写的电子邮件地址符合要求,则可顺利保存:
此字段类型的部署十分简单:
1、将DLL拖放到GAC中(C:\Windows\Assemblies目录)
2、将xml文件拷贝至:C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\XML
3、开始->运行->iisreset
RegEx Text Field下载:
http://www.gotdotnet.com/workspaces/workspace.aspx?id=633be800-ded5-49ea-b84d-302ce111811e
注:此代码在Beta2版本上运行正常,但不支持B2TR。
更新:自定义字段值有效性判断失败时的提示信息可编辑: