zoukankan      html  css  js  c++  java
  • SharePoint代码建表(实战)

    分享人: 广州华软 无名

    一. 前言

    虽然SharePoint提供可视化界面建表,但是,不利于开发自动化部署。通常,如果通过手动建表,我们先在测试环境建表,然后存为模板,再上传到实际环境,最后根据模板来创建列表。况且,有些列表也就一次使用,也就没必要存为模板。

    二. 目录

    1.代码建表作用

    2.如何使用代码建表

    2.1前置条件

    2.2关键代码

    3总结

    三. 代码建表作用

    开发环境和实际使用环境是分离的,避免重复在各个环境手动建表;

    代码和建表分离,如果增减字段,后期要维护多个地方的数据,通过代码,可通过网站或网站集功能统一处理。

    通过可视化界面建表,我们需要先建内部名称,然后再修改显示名称,通过代码可以一次搞定。

    四. 如何使用代码建表

    代码建表有多种方式,一种是通过SharePoint提供的开发模板创建列表,一种是通过SharePoint对象模型创建列表,这里介绍的是使用SSOM对象模型创建列表。

    4.1 前置条件

    引用Microsoft.SharePoint.DLL类库

    引用命名空间Microsoft.SharePoint;

    当前登录用户有创建列表权限

    4.2 关键代码

    先创建列表,在创建表关联字段。

    4.2.1 创建列表

    var sPWeb= SPContext.Current.Web;

    Guid guid = sPWeb.Lists.Add(列表内部名,列表描述, SPListTemplateType.GenericList);

                    SPList lst = sPWeb.Lists[guid];

                    lst.Title = “列表显示名称”;

                    lst.Update();

    4.2.2 创建文本字段

    SPField tempFld = new SPField(flds, SPFieldType.Text.ToString(), 字段内部名称);

                SPFieldText fld = flds.GetFieldByInternalName(flds.Add(tempFld)) as SPFieldText;

                fld.MaxLength = 长度限制;

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.EnforceUniqueValues = 唯一值;

                fld.Required = 必填

                fld.Update();

    4.2.3 创建是否字段

    SPField tempFld = new SPField(flds, SPFieldType.Boolean.ToString(), 字段内部名称);

                SPField fld = flds.GetFieldByInternalName(flds.Add(tempFld));

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.Update();

    4.2.4 创建数字字段

    SPField tempFld = new SPField(flds, SPFieldType.Number.ToString(), 字段内部名称);

                SPField fld = flds.GetFieldByInternalName(flds.Add(tempFld));

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.Update();

    4.2.5 创建整数字段

    SPField tempFld = new SPField(flds, SPFieldType.Integer.ToString(), 字段内部名称);

                SPField fld = flds.GetFieldByInternalName(flds.Add(tempFld));

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.Update();

    4.2.6 创建选项字段

    SPField tempFld = new SPField(flds, SPFieldType.Choice.ToString(), 字段内部名称);

                SPFieldChoice fld = flds.GetFieldByInternalName(flds.Add(tempFld)) as SPFieldChoice;

    fld.Choices.AddRange(new string[]{选项值});

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.Update();

    4.2.7 创建时间字段

    SPField tempFld = new SPField(flds, this.FieldType.ToString(), 字段内部名称);

                SPFieldDateTime fld = flds.GetFieldByInternalName(flds.Add(tempFld)) as SPFieldDateTime;

                fld.DefaultValue = 默认值;

                fld.Title = 字段名称;

                fld.DisplayFormat = 日期格式;

                fld.FriendlyDisplayFormat = 日期显示风格;

                fld.Update();

    4.2.8 创建查阅项字段

                string internalName = flds.AddLookup(字段内部名称,被关联表guid, 是否必填);

                SPFieldLookup fld = flds.GetFieldByInternalName(internalName) as SPFieldLookup;

                fld.Title = 字段名称;

                fld.LookupField =被关联字段;

                fld.Update();

    4.2.9 创建用户字段

      SPField tempFld = new SPField(flds, SPFieldType.User.ToString(),字段内部名称);

                SPFieldUser fld = flds.GetFieldByInternalName(flds.Add(tempFld)) as SPFieldUser;

                fld.Title =字段名称;

                fld.AllowMultipleValues =是否多值;

                fld.SelectionMode = 设置选择组还是用户;

                fld.Update();

    4.2.10 创建链接字段

    SPField tempFld = new SPField(flds, SPFieldType.URL.ToString(), 自动内部名);

                SPFieldUrl fld = flds.GetFieldByInternalName(flds.Add(tempFld)) as SPFieldUrl;

                fld.Title = 字段名称;            fld.Required = 是否必填

                fld.Indexed =是否建立索引;

                fld.EnforceUniqueValues =是否唯一

                fld.DisplayFormat =显示图片还是链接

                fld.Update();

    五. 总结

    对于开发而言,把创建表的过程写在代码里面,方便在同个地方统一维护。

    如果一个列表被多个网站使用到,可以将列表作为网站功能。一激活,则多个地方都可以同时使用。

    SharePoint给我们提供了很多建立表的api,给我们开发带来便利,提高了开发效率。

  • 相关阅读:
    Spring 基础学习
    Swagger basics (one)
    Handsontable Basics V7(one)
    JavaScript 对象
    CSS 基础总结
    Shell Programming(three)
    Shell Programming(two)
    Shell Programming(one)
    HTML标签总结
    jQuery 基础
  • 原文地址:https://www.cnblogs.com/gzhr/p/10635208.html
Copyright © 2011-2022 走看看