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,给我们开发带来便利,提高了开发效率。
SharePoint代码建表(实战)的更多相关文章
- MySQL用程序代码建表(1)
一.创建表格代码格式 create table <表名>( <列名> <数据类型及长度> [not null], <列名> <数据类型及长度> ...
- MatrixOne从入门到实战04——MatrixOne的连接和建表
MatrixOne从入门到实战--MatrixOne的连接和建表 前景回顾 前几篇文章,为大家介绍了MatrixOne这个产品,以及编译.部署MatrixOne的服务. 直通车: MatrixOne从 ...
- vue.js+koa2项目实战(六)数据库建表
数据库建表 1.打开 MySQL 终端 2.查看所有数据库 show databases 3.创建数据库 create database pet 4.进入数据库 use pet 5.创建数据表 cre ...
- Hibernate不能自动建表解决办法
最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...
- 【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- [转]Hibernate不能自动建表解决办法及Hibernate不同数据库的连接及SQL方言
最近开始学Hibernate,看的是李刚的那本<轻量级java ee企业应用实战>.头一个hibernate程序,我原原本本的按照书上例子写下来,同时只是改动了些mysql的连接参数,并且 ...
- (转)Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
1.搭建环境 新建JAVA项目,添加的包有: 有关Hadoop的hadoop-core-0.20.204.0.jar 有关Hbase的hbase-0.90.4.jar.hbase-0.90.4-tes ...
- Oracl用代码建标
建标还可以通过编写代码的方式实现,这样在建许多类似的表的时候可以极高建表的效率. create table SCORE --建立表名( ...
- PowerDesigner连接Oracle数据库建表序列号实现自动增长
原文:PowerDesigner连接Oracle数据库建表序列号实现自动增长 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties — ...
随机推荐
- 我眼中的 Nginx(五):Nginx — 子请求设计之道
张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护.Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的 ...
- javascript正则表达式学习(二)--位置匹配
文章首发于sau交流学习社区 一.前言 正则表达式是匹配模式,要么是匹配字符,要么匹配位置. 其实在开发中很少用到匹配位置,本篇文章主要包含: 二.什么是位置 位置:相邻字符之间的位置. 三.如何匹配 ...
- 使用Rotativa在ASP.NET Core MVC中创建PDF
在本文中,我们将学习如何使用Rotativa.AspNetCore工具从ASP.NET Core中的视图创建PDF.如果您使用ASP.NET MVC,那么Rotativa工具已经可用,我们可以使用 ...
- 一大波开发者福利来了,一份微软官方Github上发布的开源项目清单等你签收
目录 微软Github开源项目入口 微软开源项目受欢迎程度排名 Visual Studio Code TypeScript RxJS .NET Core 基础类库 CNTK Microsoft cal ...
- TensorFlow从1到2(一)续讲从锅炉工到AI专家
引言 原来引用过一个段子,这里还要再引用一次.是关于苹果的.大意是,苹果发布了新的开发语言Swift,有非常多优秀的特征,于是很多时髦的程序员入坑学习.不料,经过一段头脑体操一般的勤学苦练,发现使用S ...
- LeetCode重建二叉树系列问题总结
二叉树天然的递归特性,使得我们可以使用递归算法对二叉树进行遍历和重建.之前已经写过LeetCode二叉树的前序.中序.后序遍历(递归实现),那么本文将进行二叉树的重建,经过对比,会发现二者有着许多相似 ...
- Odoo开源智造IT经理人创业圆梦计划正式启动
概念定义 IT经理人创业圆梦计划是什么? 甲方IT经理人的行业背景 + 其他甲方需求及可靠信任的线索资源 = 自主创业圆梦计划 具体措施 甲方IT经理人的职业行业背景取得其他甲方需求线索及信任——通过 ...
- git 的常用命令
1. 添加远程仓库地址 git remote add origin xxxxxxxxxxxx 2.初始化仓库 git init 3.创建分支 git checkout -b xxxxxx 4. 查看当 ...
- python3 装饰器初识 NLP第三条
还是先抄一条NLP假设... 三,有效果比有道理更重要 光说做法有道理或者正确而不顾是否有效果,是在自欺欺人. 在三赢(我好,人好,世界好)的原则基础上追求效果,比坚持什么是对的更有意义. 说道理 ...
- 使用 connect http proxy 绕过 ssh 防火墙限制
1.安装 connect brew install connect 2.配置 ~/.ssh/config Host * ProxyCommand connect -H your.proxy.serve ...