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 — ...
随机推荐
- 《前端之路》之 JavaScript 进阶技巧之高阶函数(下)
目录 第二章 - 03: 前端 进阶技巧之高阶函数 一.防篡改对象 1-1:Configurable 和 Writable 1-2:Enumerable 1-3:get .set 2-1:不可扩展对象 ...
- TensorFlow从1到2(五)图片内容识别和自然语言语义识别
Keras内置的预定义模型 上一节我们讲过了完整的保存模型及其训练完成的参数. Keras中使用这种方式,预置了多个著名的成熟神经网络模型.当然,这实际是Keras的功劳,并不适合算在TensorFl ...
- C#中关于表达式与委托在EF中的不同表现总结
Func<Invoice, bool> func = x => x.State == InvoiceState.Created; Expression<Func<Invo ...
- PostgreSQL数据库部署之 :PostgreSQL pgadmin4 the application server could not be contacted
遇到问题: 尝试了删除c:\Users\your_name\AppData\Roaming\pgAdmin 之内的删除所有文件和文件夹, 然后在C:\Program Files\PostgreSQL\ ...
- python3 函数传参练习 全局变量与局部变量 的理解
额 还是继续抄一边NLP第二条: 2.一个人不能控制另外一个人 一个人不能改变另外一个人,一个人只能改变自己. 每个人的信念,价值观,规条系统只对本人有效,不应强求别人接守. 改变自己,别人才会有 ...
- SQL注入攻击的常见方式及测试方法
本文主要针对SQL注入的含义.以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解.适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录.发布等模块的SQL攻击漏洞,至于如何预 ...
- webpack打包The 'mode' option has not been set,错误提示
学习到webpack打包这个工具的时候,总是报错.在这里记录一下...... 我是window系统 当使用npm安装好webpack后,你去查看如果出现一下问题. 出现以上问题,我的做法是 先将web ...
- Linux如何查看与测试磁盘IO性能
1. 查看磁盘 IO 性能 1.1 top 命令 top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 ...
- React 与 React-Native 使用同一个 meteor 后台
meteor 可以快速构建 pc,移动端,桌面端应用. 最大的优点是:数据库的数据发生变化时,可以实时推送到前端,非常适用于实时展示的应用开发. 在 react,react-native 应用中,可以 ...
- C语言字符/字符串相关函数收藏
字符串的声明与使用 定义一个可变的字符串: char ch[]={"123456abc"}; char ch2[5]={"123456789"}; //会出现警 ...