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 — ...
随机推荐
- python爬虫Scrapy(一)-我爬了boss数据
一.概述 学习python有一段时间了,最近了解了下Python的入门爬虫框架Scrapy,参考了文章Python爬虫框架Scrapy入门.本篇文章属于初学经验记录,比较简单,适合刚学习爬虫的小伙伴. ...
- LeetCode重建二叉树系列问题总结
二叉树天然的递归特性,使得我们可以使用递归算法对二叉树进行遍历和重建.之前已经写过LeetCode二叉树的前序.中序.后序遍历(递归实现),那么本文将进行二叉树的重建,经过对比,会发现二者有着许多相似 ...
- 设计模式之外观模式——Java语言描述
外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口.它想现有的系统添加了一个接口,以隐藏系统的复杂性 介绍 意图 为子系统中的一组接口提供了一个一致的界面,外观模式定义了一个高层接 ...
- LeetCode算法题-Minimum Distance Between BST Nodes(Java实现-四种解法)
这是悦乐书的第314次更新,第335篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第183题(顺位题号是783).给定具有根节点值的二叉搜索树(BST),返回树中任何两个 ...
- 你可能需要为你的 APP 适配 iOS 11
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/AZFrqL9dnlgA6Vt2sVhxIw 作者:s ...
- IoC和AOP的理解
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实 ...
- CSS Modules In Webpack
1)从形式上看,CSS Modules 是将CSS中的选择器转换为变量,然后在DOM中引用变量来引入样式. 2)从效果上看,CSS Modules 可以将CSS选择器名字转成随机字符串,保证选择器同名 ...
- docker快速搭建几个常用的第三方服务
本次和大家分享的内容是使用docker快速搭建工作中常用的第三方的服务,对于有一些互联网背景的公司来说,以下几个服务都是很需要的:redis,rabbit,elasticsearch: 本篇涉及内容深 ...
- 安装window下的redis,redis可视化管理工具(Redis Desktop Manager)安装,基础使用,实例化项目
以下包括内容: 一.redis下载安装,启动 二.Redis可视化管理工具(Redis Desktop Manager)安装 三.实例化项目 一.redis下载安装,启动 1,redis官方下载地址: ...
- Spring Cloud 微服务架构学习笔记与示例
本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...