zoukankan      html  css  js  c++  java
  • 在SharePoint 2010中创建自定义字段类型

    网站栏已经为一般用户和开发者提供了非常好的可重用的能力。更进一步,你可以定义一个可重用的栏定义,这将为我们带来更大的灵活性。配合Microsoft SharePoint Foundation 2010,你可以将创建自定义字段类型的门槛降得很低。

    下面是创建一个自定义字段类型的总体步骤。你也可以参考这个msdn How to Video 视频

    创建一个自定义字段控件的过程为:

    1. 创建一个public 的自定义字段类型的类,并继承自某个内置的字段类型类,比如SPFieldBoolen,SPFieldChoice,或 SPFieldText。
    2. 创建两个public的构造器,接收特定的参数,并传递给相同参数的父类的构造器。

    3. 创建一个XML文件,作为该字段类型的部署文件。你必须将其部署到一个指定的目录中,并且需要在场级别激活该自定义字段类型。

    创建自定义字段类

    你必须把自定义字段类定义为public的,并且为其提供两个非默认的构造器。本例同时还展示了如何通过覆写GetValidatedString方法使用正则表达式验证字段的值。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.SharePoint;
    
    namespace WingtipCustomFields {
    public class ProductCode : SPFieldText {
    
    public ProductCode(SPFieldCollection fields, string fName) : base(fields, fName) { }
    public ProductCode(SPFieldCollection fields, string tName, string dName) : base(fields, tName, dName) { }
    
    public override string DefaultValue {
    get { return “P001″; }
    }
    
    public override string GetValidatedString(object value) {
    
    if (!value.ToString().StartsWith(“P”))
    
    { throw new SPFieldValidationException(“Product code must start with ‘P’”); }
    
    if (value.ToString().Length != 4)
    
    { throw new SPFieldValidationException(“Product code must be 4 chars”); }
    
    // 在写入内容数据库前总是转换成大写的
    return value.ToString().ToUpper();
    }
    }}
    

    创建该字段类型的部署文件

    字段类型的部署文件包含了由 Collaborative Application Markup Language (CAML) 定义的自定义字段类型。你必须以这样的格式命名该文件 fieldtypes*.xml 并将其部署到14\TEMPLATE\XML 目录下。下面的例子文件被命名为 fldtypes_WingtipCustomFields.xml。

    <FieldTypes>
      <FieldType>
        <Field Name="TypeName">ProductCode</Field>
        <Field Name="ParentType">Text</Field>
        <Field Name="TypeDisplayName">Product Code</Field>
        <Field Name="TypeShortDescription">Wingtip Product Code</Field>
        <Field Name="UserCreatable">TRUE</Field>
        <Field Name="FieldTypeClass">
          WingtipCustomFields.ProductCode,
          $SharePoint.Project.AssemblyFullName$ 
       </Field>
      </FieldType>
    </FieldTypes>
    

    注意 -

    Microsoft Visual Studio 2010 中的SharePoint部署工具允许你使用 $SharePoint.Project.AssemblyFullName$ 占位符来表示实际的组件名称。当你编译源文件并打包成解决方案包时SharPoint会用实际的组件名称替换该占位符。

    参考资料

    Custom field type in SharePoint 2010

  • 相关阅读:
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1028 数的计算
    (Java实现) 洛谷 P1553 数字反转(升级版)
    8.4 确定两个日期之间的月份数或年数
    (Java实现) 洛谷 P1553 数字反转(升级版)
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/1876796.html
Copyright © 2011-2022 走看看