1,由于目前的SharePoint网站需要部署到多个服务器上,每个网站的内容都不一样,所以使用备份还原是不可以的。常用的方式便是将列表导出为列表模版,然后将列表模版复制到服务器上,根据列表模版创建列表。由于网站中的列表比较多,需要部署多套项目,这项工作就变成了很无聊的一项工作。因此通过编程的方式自动创建所有列表。

2,请看代码(我是用控制台程序创建的列表)

(1)主函数

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)获取列表模版

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类型字段

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)初始化列表数据

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)批量创建列表

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自动初始化网站列表相关推荐

  1. Windows SharePoint Services 中文网站模板

    适用于: Microsoft Office Excel 2003, Outlook 2003, PowerPoint 2003, Word 2003 这组中文网站模板基于 Microsoft Wind ...

  2. SharePoint 2013 新建网站集图解

    SharePoint 2013 新建网站集图解 原文:SharePoint 2013 新建网站集图解 前言:接触SharePoint的人可能是越来越多,但是很多人一接触就很迷茫,在技术群里问如何新建网 ...

  3. SharePoint 2013 跨网站集发布功能简介

    在SharePoint Server 2013网站实施中,我们经常会遇到跨网站集获取数据,而2013的这一跨网站集发布功能,正好满足我们这样的需求. 使用SharePoint 2013中的跨网站发布, ...

  4. node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...

  5. C ++中的初始化程序列表– std :: initializer_list

    In this article, we'll take a look at using initializer lists in C++ (std::initializer_list). 在本文中,我 ...

  6. 间隔一段时间重复自动登录网站、定时自动登录网站的软件 —— 定时执行专家,无需复杂编程,简单配置即可使用

    常常有网友在网上发帖求助,想找一个定时自动登录网页(网站)的软件,大致需求如下: 1.打开网页 → 2.填写用户名.密码 → 3.点击登录按钮 → 4.登录成功 另外,还有诸如:要求间隔是每3个小时自 ...

  7. AirtestIDE1.2.13的安卓手机设置自动初始化功能

    此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 1. 前言 在AirtestIDE1.2.13版本 ...

  8. C/C++编程:初始化器列表构造函数

    以前,C++可以使用小括号.大括号.复制操作符等来初始化一个变量, 现在(从C++11开始算起),在C++初始化一个变量时,建议都使用{}来初始化 一致性初始化 问题: C++11之前, 初始化方式, ...

  9. 2006年最新统计web2.0新鲜网站列表

    Ten Bills, 似乎是个卖T恤衫的网站. 用户可以付上10个美元可以挑选一件个性化的, 自己中意的T恤衫. 网站后台其实是一个供画家, 设计师, 音乐迷, 艺术爱好者, 自由思想家们交流的平台. ...

最新文章

  1. Java实现内嵌浏览器
  2. python3读取excel数据-Python3操作Excel文件(读写)的简单实例
  3. SpringMVC处理静态资源
  4. c++ template(9)trait和Policy
  5. 验证VSPHERE5 支持大于2TB磁盘
  6. JDBC开发之数据库连接池
  7. jsp mysql论坛_体育论坛ssm,mysql)
  8. Python实现共现语义网络
  9. 手机显示DNS服务器异常,手机dns服务器异常怎么设置
  10. depts: deep expansion learning for periodic time series forecasting
  11. 微信摇一摇插件ios_iOS开发——全局响应MotionEvent(微信摇一摇)
  12. 884.两句话中的不常见单词
  13. 许嵩的60句感人歌词,道出了学生时代实在爱情的伤与痛~
  14. 自动驾驶地图数据传输协议ADASISv3介绍
  15. [网络安全学习篇1]:windowsxp、windows2003、windows7、windows2008系统部署(千峰网络安全视频笔记)
  16. application.yaml配置详解
  17. BBeditV10.0的注册码
  18. 华为 USG6000防火墙配置镜像模式双机热备
  19. 看一遍就懂,详解java多线程——volatile
  20. sqlmap超详细使用说明书

热门文章

  1. 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强
  2. 高考用计算机吗,高考可以带计算器吗
  3. 智能文档处理IDP关键技术与实践
  4. MAC上Android Studio调试手机程序点运行设备就断开的问题
  5. docker 入门 —— docker容器数据卷volumes-from
  6. 为什么ChatGPT回答不完整
  7. hashmap中为什么使用红黑树?
  8. 春节要放假了,外贸人你准备好了吗?
  9. Go 每日一库之 mapstructure
  10. 信息价产品经理日志(1)- 妈的,不想再呆在广联达了