zoukankan      html  css  js  c++  java
  • 使用VS2010开发一个简单的自定义字段类型

      在SharePoint中创建自定义字段类型,必须完成两个工作:创建继承于SPField的字段类;编写字段的配置文件,声明字段的基本属性、字段的实现类和字段的呈现逻辑等。

      首先在SharePoint站点创建一个自定义列表,我命名为“客户资料”。

      接下来打开VS2010,并创建一个空白SharePoint项目,我的项目命名为“MyCustomFieldsDemo”,一定要选择”部署为场解决方案“,否则不能部署;

      然后添加一个类CustomAgeField.cs, 代码如下

    View Code
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.SharePoint;

    namespace MyCustomFieldsDemo
    {
    public class CustomAgeField : SPFieldText
    {
    //必须声明如下两个构造函数并显示调用父类相应方法
    public CustomAgeField(SPFieldCollection fields, string fName)
    : base(fields, fName) { }
    public CustomAgeField(SPFieldCollection fields, string typeName, string displayName)
    : base(fields, typeName, displayName) { }

    ///<summary>
    /// 字段的默认值
    ///</summary>
    public override string DefaultValue
    {
    get
    {
    return "18";
    }
    }

    ///<summary>
    /// 判断该字段输入的年龄是否合法
    ///</summary>
    ///<param name="value"></param>
    ///<returns></returns>
    public override string GetValidatedString(object value)
    {
    if (value == null)
    {
    throw new SPFieldValidationException("*不能为空值");
    }

    string valueStr = value.ToString();
    int i = 0;
    if (!int.TryParse(valueStr, out i) || i < 0 || i > 150)
    {
    throw new SPFieldValidationException("*年龄输入不合法");
    }

    return valueStr;
    }
    }
    }

      紧接着创建相应XML配置文档,先添加名为”XML”的SharePoint映射文件夹如下图所示:

    然后在该映射文件夹下添加一个XML文档,我命名为“fldtypesAgeCustomFields.xml”,这里注意这个XML文档的名称一定是“fieldtypes*.xml”的形式。XML文档的代码如下:

    View Code
    <?xml version="1.0" encoding="utf-8" ?>
    <FieldTypes>
    <FieldType>
    <Field Name="TypeName">CustomAgeField</Field>
    <Field Name="ParentType">Text</Field>
    <Field Name="TypeDisplayName">年龄</Field>
    <Field Name="TypeShortDescription">客户年龄</Field>
    <Field Name="UserCreatable">TRUE</Field>
    <Field Name="FieldTypeClass">
    MyCustomFieldsDemo.CustomAgeField,
    $SharePoint.Project.AssemblyFullName$
    </Field>
    </FieldType>
    </FieldTypes>

    关于该XML文档的各节点说明如下表所示:

    属性或节点

    说明

    TypeName

    字段类型的唯一名称,不能重复

    TypeDisplayName

    字段显示名

    InternalType

    字段内部名称

    FieldTypeClass

    字段的实现类,需要采用类的全称(含dll名称)

    SQLType

    字段的存储类型

    ParentType

    字段的父类名称

    Sortable

    是否允许排序

    FieldEditorUserControl

    字段的属性编辑控件

    Filterable

    是否允许过滤

    HeaderPattern

    基于字段的栏显示在列表上时标题行呈现定义

    DisplayPattern

    基于字段的栏在显示页面(DispForm)时的呈现定义

    EditPattern

    基于字段的栏在编辑页面(EditForm)时的呈现定义

    NewPattern

    基于字段的栏在新建页面(NewForm)时的呈现定义

    OK,现在可以部署了,部署成功后在SharePoint站点的“客户资料”列表下点击“列表工具”选项卡下的“列表“选项卡,再点击”创建栏“,如下图所示

    其他选项保持默认值,单击”确定“按钮,这时”客户资料“列表就多了”客户年龄“一栏,我们再点击添加新项目,这个时候大家可以发现除了标题还多一个字段”客户年龄“,如果我们在该字段输入不合法,比如”-56“就提示错误,这个错误就是我们在CustomAgeField类里所声明抛出的异常。

    OK,完工!





     感谢阅读,请留下您的意见或疑问! 能力有限,错漏难免,欢迎指点!

     分割线:我的个人原创,请认准 http://freedong.cnblogs.com/ (转摘不标原文出处可耻)

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/FreeDong/p/2250548.html
Copyright © 2011-2022 走看看