SharePoint自动初始化网站列表
1,由于目前的SharePoint网站需要部署到多个服务器上,每个网站的内容都不一样,所以使用备份还原是不可以的。常用的方式便是将列表导出为列表模版,然后将列表模版复制到服务器上,根据列表模版创建列表。由于网站中的列表比较多,需要部署多套项目,这项工作就变成了很无聊的一项工作。因此通过编程的方式自动创建所有列表。
2,请看代码(我是用控制台程序创建的列表)
(1)主函数
![](/assets/blank.gif)
![](/assets/blank.gif)
static void Main(string[] args){SPSecurity.RunWithElevatedPrivileges(delegate(){using (SPSite site = new SPSite("http://192.168.1.124/sites/CustomWeb")){using (SPWeb web = site.OpenWeb()){Console.WriteLine("准备在" + web.Url + "站点上创建列表");web.AllowUnsafeUpdates = true;SPListTemplate customTemplate = GetListTemplate(site, web);if (customTemplate != null){Console.WriteLine("第(1)步:开始创建《文章模版》列表...");if (CreateArticleTemplate(customTemplate, web)){Console.WriteLine("PS:《文章模版》列表创建成功!");BatchCreateList(web, customTemplate);}else{Console.WriteLine("PS:创建《文章模版》列表过程中出现错误");}}else{Console.WriteLine("PS:没有找到合适的模版");}web.AllowUnsafeUpdates = false;}}});Console.WriteLine("*******************************************************");Console.WriteLine("列表全部创建完成");Console.ReadLine();}
View Code
(2)获取列表模版
![](/assets/blank.gif)
![](/assets/blank.gif)
private static SPListTemplate GetListTemplate(SPSite site, SPWeb web){SPListTemplate CustomTemplate = null;try{SPListTemplateCollection ListTemplateCollection = site.GetCustomListTemplates(web);foreach (SPListTemplate template in ListTemplateCollection){if (template.InternalName == "customTemp.stp"){CustomTemplate = template;break;}}}catch (Exception){CustomTemplate = null;}return CustomTemplate;}
View Code
(3)创建文章模版列表,该表作为其他列表的外键表,以此创建LookUp类型字段
![](/assets/blank.gif)
![](/assets/blank.gif)
private static bool CreateArticleTemplate(SPListTemplate customTemplate, SPWeb web){bool flag = false;try{//创建列表Guid newListGuid = web.Lists.Add("ArticleTemplate", "文章模版列表", customTemplate);SPList newList = web.Lists[newListGuid];newList.Title = "文章模版";//创建字段string result = newList.Fields.Add("Template", SPFieldType.Text, false);//更改字段英文名为中文SPField sf_result = newList.Fields["Template"];if (sf_result != null){sf_result.Title = "模版";}sf_result.Update();newList.Update();//初始化数据SPListItem itemWord = newList.AddItem();itemWord["Title"] = "word展示";itemWord["Template"] = "<div id=\"OfficeDiv\"><div id=\"FrameDiv\">$word</div></div>";itemWord.Update();SPListItem itemPic = newList.AddItem();itemPic["Title"] = "先图再文";itemPic["Template"] = "<div class=newimg>$img </div>$content<p>$editor</p>";itemPic.Update();flag = true;}catch (Exception){}return flag;}
View Code
(4)初始化列表数据
![](/assets/blank.gif)
![](/assets/blank.gif)
private static Dictionary<string, string> InitData(){Dictionary<string, string> dicInit = new Dictionary<string, string>();//德育处列表dicInit.Add("MoralDynamic", "德育动态");dicInit.Add("MainEducation", "主题教育");dicInit.Add("PlanSummary", "计划总结");dicInit.Add("BodyHeart", "育体育心");dicInit.Add("HealthDynamic", "卫生动态");return dicInit;}
View Code
(5)批量创建列表
![](/assets/blank.gif)
![](/assets/blank.gif)
private static void BatchCreateList(SPWeb web, SPListTemplate customTemplate){Dictionary<string, string> dics = InitData();SPList spList = web.Lists.TryGetList("文章模版");int flag = 2;try{foreach (KeyValuePair<string, string> dic in dics){Console.WriteLine("第(" + flag + ")步:开始创建《" + dic.Value + "》列表...");Guid newListGuid = web.Lists.Add(dic.Key, dic.Value + "列表", customTemplate);SPList newList = web.Lists[newListGuid];newList.Title = dic.Value;//创建正文字段string mainbody = newList.Fields.Add("MainBody", SPFieldType.Text, false);SPField sf_mainbody = newList.Fields["MainBody"];if (sf_mainbody != null){sf_mainbody.Title = "正文";}sf_mainbody.Update();//创建访问数量字段string count = newList.Fields.Add("Count", SPFieldType.Text, false);SPField sf_count = newList.Fields["Count"];if (sf_count != null){sf_count.Title = "访问数量";}sf_count.Update();//创建模版字段Guid lookupGuid = new Guid(spList.ID.ToString());string template = newList.Fields.AddLookup("Template", lookupGuid, false);SPFieldLookup sf_lookupGuid = newList.Fields["Template"] as SPFieldLookup; //绑定数据List到Lookup字段 sf_lookupGuid.LookupField = spList.Fields["标题"].StaticName;//SPField sf_lookupGuid = newList.Fields["Count"];sf_lookupGuid.Title = "模版";sf_lookupGuid.Update();newList.Update();Console.WriteLine("PS:《" + dic.Value + "》列表创建成功");flag++;}}catch (Exception ex){Console.WriteLine("PS:批量创建列表过程失败!!!");}}
View Code
参考博客:http://blog.csdn.net/qq873113580/article/details/22668833
转载于:https://www.cnblogs.com/wanren/p/4534765.html
SharePoint自动初始化网站列表相关推荐
- Windows SharePoint Services 中文网站模板
适用于: Microsoft Office Excel 2003, Outlook 2003, PowerPoint 2003, Word 2003 这组中文网站模板基于 Microsoft Wind ...
- SharePoint 2013 新建网站集图解
SharePoint 2013 新建网站集图解 原文:SharePoint 2013 新建网站集图解 前言:接触SharePoint的人可能是越来越多,但是很多人一接触就很迷茫,在技术群里问如何新建网 ...
- SharePoint 2013 跨网站集发布功能简介
在SharePoint Server 2013网站实施中,我们经常会遇到跨网站集获取数据,而2013的这一跨网站集发布功能,正好满足我们这样的需求. 使用SharePoint 2013中的跨网站发布, ...
- node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程
一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...
- C ++中的初始化程序列表– std :: initializer_list
In this article, we'll take a look at using initializer lists in C++ (std::initializer_list). 在本文中,我 ...
- 间隔一段时间重复自动登录网站、定时自动登录网站的软件 —— 定时执行专家,无需复杂编程,简单配置即可使用
常常有网友在网上发帖求助,想找一个定时自动登录网页(网站)的软件,大致需求如下: 1.打开网页 → 2.填写用户名.密码 → 3.点击登录按钮 → 4.登录成功 另外,还有诸如:要求间隔是每3个小时自 ...
- AirtestIDE1.2.13的安卓手机设置自动初始化功能
此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 1. 前言 在AirtestIDE1.2.13版本 ...
- C/C++编程:初始化器列表构造函数
以前,C++可以使用小括号.大括号.复制操作符等来初始化一个变量, 现在(从C++11开始算起),在C++初始化一个变量时,建议都使用{}来初始化 一致性初始化 问题: C++11之前, 初始化方式, ...
- 2006年最新统计web2.0新鲜网站列表
Ten Bills, 似乎是个卖T恤衫的网站. 用户可以付上10个美元可以挑选一件个性化的, 自己中意的T恤衫. 网站后台其实是一个供画家, 设计师, 音乐迷, 艺术爱好者, 自由思想家们交流的平台. ...
最新文章
- Java实现内嵌浏览器
- python3读取excel数据-Python3操作Excel文件(读写)的简单实例
- SpringMVC处理静态资源
- c++ template(9)trait和Policy
- 验证VSPHERE5 支持大于2TB磁盘
- JDBC开发之数据库连接池
- jsp mysql论坛_体育论坛ssm,mysql)
- Python实现共现语义网络
- 手机显示DNS服务器异常,手机dns服务器异常怎么设置
- depts: deep expansion learning for periodic time series forecasting
- 微信摇一摇插件ios_iOS开发——全局响应MotionEvent(微信摇一摇)
- 884.两句话中的不常见单词
- 许嵩的60句感人歌词,道出了学生时代实在爱情的伤与痛~
- 自动驾驶地图数据传输协议ADASISv3介绍
- [网络安全学习篇1]:windowsxp、windows2003、windows7、windows2008系统部署(千峰网络安全视频笔记)
- application.yaml配置详解
- BBeditV10.0的注册码
- 华为 USG6000防火墙配置镜像模式双机热备
- 看一遍就懂,详解java多线程——volatile
- sqlmap超详细使用说明书
热门文章
- 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强
- 高考用计算机吗,高考可以带计算器吗
- 智能文档处理IDP关键技术与实践
- MAC上Android Studio调试手机程序点运行设备就断开的问题
- docker 入门 —— docker容器数据卷volumes-from
- 为什么ChatGPT回答不完整
- hashmap中为什么使用红黑树?
- 春节要放假了,外贸人你准备好了吗?
- Go 每日一库之 mapstructure
- 信息价产品经理日志(1)- 妈的,不想再呆在广联达了