1,项目有个需求:项目表每更新一次,就把跟该项目有关的任务创建一个静态页(历史版本功能)!

注意事项:需要在页面上拖一个ContentEditer!将代码放在ContentEditer里面,因为我试过发现,如果直接在SPD里面写代码,保存时,下面那段引用程序集的代码会提示不安全字符串,然后会被修改掉。

 function createListItem(version,itemTitle) {

             var clientContext = new SP.ClientContext.get_current();
var oWebsite = clientContext.get_web();
var oList = oWebsite.get_lists().getByTitle("项目计划历史"); var fileCreateInfo = new SP.FileCreationInformation();
fileCreateInfo.set_url(version+".aspx");
fileCreateInfo.set_content(new SP.Base64EncodedByteArray());
var fileContent ="<%@ Assembly Name=\"Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\"%> <%@ Page Language=\"C#\" Inherits=\"Microsoft.SharePoint.WebPartPages.WikiEditPage\" MasterPageFile=\"~masterurl/default.master\" MainContentID=\"PlaceHolderMain\" meta:webpartpageexpansion=\"full\" meta:progid=\"SharePoint.WebPartPage.Document\" %><%@ Import Namespace=\"Microsoft.SharePoint.WebPartPages\" %> <%@ Register Tagprefix=\"SharePoint\" Namespace=\"Microsoft.SharePoint.WebControls\" Assembly=\"Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\" %> <%@ Register Tagprefix=\"Utilities\" Namespace=\"Microsoft.SharePoint.Utilities\" Assembly=\"Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\" %> <%@ Import Namespace=\"Microsoft.SharePoint\" %> <%@ Assembly Name=\"Microsoft.Web.CommandUI, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\" %><%@ Register Tagprefix=\"WebPartPages\" Namespace=\"Microsoft.SharePoint.WebPartPages\" Assembly=\"Microsoft.SharePoint, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\" %><asp:Content ContentPlaceHolderId=\"PlaceHolderPageTitle\" runat=\"server\"> <SharePoint:ProjectProperty Property=\"Title\" runat=\"server\"/> - <SharePoint:ListItemProperty runat=\"server\"/></asp:Content><asp:Content ContentPlaceHolderId=\"PlaceHolderPageImage\" runat=\"server\"><SharePoint:AlphaImage ID=onetidtpweb1 Src=\"/_layouts/15/images/wiki.png?rev=32\" Width=145 Height=54 Alt=\"\" Runat=\"server\"/></asp:Content><asp:Content ContentPlaceHolderId=\"PlaceHolderAdditionalPageHead\" runat=\"server\"> <meta name=\"CollaborationServer\" content=\"SharePoint Team Web Site\" /> <SharePoint:ScriptBlock runat=\"server\"> var navBarHelpOverrideKey = \"WSSEndUser\"; </SharePoint:ScriptBlock> <SharePoint:RssLink runat=\"server\"/> </asp:Content> <asp:Content ContentPlaceHolderId=\"PlaceHolderMiniConsole\" runat=\"server\"> <SharePoint:FormComponent TemplateName=\"WikiMiniConsole\" ControlMode=\"Display\" runat=\"server\" id=\"WikiMiniConsole\"/> </asp:Content> <asp:Content ContentPlaceHolderId=\"PlaceHolderLeftActions\" runat=\"server\"> <SharePoint:RecentChangesMenu runat=\"server\" id=\"RecentChanges\"/> </asp:Content> <asp:Content ContentPlaceHolderId=\"PlaceHolderMain\" runat=\"server\"> <span id=\"wikiPageNameDisplay\" style=\"display: none;\" runat=\"server\"> <SharePoint:ListItemProperty runat=\"server\"/> </span> <span style=\"display:none;\" id=\"wikiPageNameEdit\" runat=\"server\"> <asp:TextBox id=\"wikiPageNameEditTextBox\" runat=\"server\"/> </span> <SharePoint:VersionedPlaceHolder UIVersion=\"4\" runat=\"server\"> <SharePoint:SPRibbonButton id=\"btnWikiEdit\" RibbonCommand=\"Ribbon.WikiPageTab.EditAndCheckout.SaveEdit.Menu.SaveEdit.Edit\" runat=\"server\" Text=\"edit\"/> <SharePoint:SPRibbonButton id=\"btnWikiSave\" RibbonCommand=\"Ribbon.WikiPageTab.EditAndCheckout.SaveEdit.Menu.SaveEdit.SaveAndStop\" runat=\"server\" Text=\"edit\"/> <SharePoint:SPRibbonButton id=\"btnWikiRevert\" RibbonCommand=\"Ribbon.WikiPageTab.EditAndCheckout.SaveEdit.Menu.SaveEdit.Revert\" runat=\"server\" Text=\"Revert\"/> </SharePoint:VersionedPlaceHolder> <SharePoint:EmbeddedFormField id=\"WikiField\" FieldName=\"WikiField\" ControlMode=\"Display\" runat=\"server\"></SharePoint:EmbeddedFormField> <WebPartPages:WebPartZone runat=\"server\" ID=\"Bottom\" CssClass=\"ms-hide\" Title=\"loc:Bottom\"><ZoneTemplate></ZoneTemplate></WebPartPages:WebPartZone></asp:Content>"; for (var i = 0; i < fileContent.length; i++) {
fileCreateInfo.get_content().append(fileContent.charCodeAt(i));
} clientContext.load(oWebsite);
var folder = oWebsite.getFolderByServerRelativeUrl(_spPageContextInfo.webServerRelativeUrl + "/ProjectHistory/"+itemTitle);
this.newFile = folder.get_files().add(fileCreateInfo);
clientContext.load(this.newFile);
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
function successHandler() { this.file = oWebsite.getFileByServerRelativeUrl(this.newFile.get_serverRelativeUrl());
this.listItem = this.file.get_listItemAllFields();
var htmlconter=$("#taskcont").html();
this.listItem.set_item("WikiField", htmlconter); this.listItem.update();
this.onConversionToMasterPageSuccess = function (sender, args) { };
this.onConversionToMasterPageFailure = function (sender, args) {
alert(args.get_message() + "\r\n\r\n" + args.get_stackTrace());
};
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onConversionToMasterPageSuccess),
Function.createDelegate(this, this.onConversionToMasterPageFailure));
}
function errorHandler() {
alert("Request failed: " + arguments[1].get_message());
}

Office365学习笔记—创建WikiPage的更多相关文章

  1. WebGL three.js学习笔记 创建three.js代码的基本框架

    WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...

  2. EntityFramework Core 学习笔记 —— 创建模型

    原文地址:https://docs.efproject.net/en/latest/modeling/index.html 前言: EntityFramework 使用一系列的约定来从我们的实体类细节 ...

  3. HTML&CSS基础学习笔记—创建列表

    创建一张表格 很多时候我们需要在网页上展示一些数据,使用表格可以很好的来展示数据. 在HTML中<table>标签定义 表格. <table> </table> 添 ...

  4. [Spring入门学习笔记][创建网站URL]

    设计网站的URL 现代的Web站点都会设计一套拥有明确意义,方便用户记忆的URL,不论是域名还是路径,以天码营为例: http://tianmaying.com/courses表示网站下所有的课程列表 ...

  5. SQLite3学习笔记----创建数据库的两种方式

    今天研究学习SQLite,刚开始创建数据库,就遇到了一个坑,是自己粗心了,特记录一下. 实验环境: OS:Ubuntu18.04 创建数据库名称:test.db 实验步骤: 1.检查是否已经安装了SQ ...

  6. Office365学习笔记—Xslt自定义列表视图

    1,在Office365中需要添加自定义的视图!用Spd添加视图,这儿我添加一个testView! (1)打开testView.aspx将</ZoneTemplate>节点中的内容全部删除 ...

  7. MongoDB 学习笔记 ---创建用户

    MongoDB安装好了之后,开始学习常用命令 首先,运行MongoDB, 记住,先不用带参数--auth /usr/local/mongodb/bin/mongod -dbpath=/usr/loca ...

  8. WeX5学习笔记-创建本地APP相关问题

    1.在Native新建[创建本地APP]时, "服务地址”为本地IP和端口号,例如本地IP为192.168.253.1,端口号为8080,则设置为http://192.168.253.1:8 ...

  9. MongoDB学习笔记-创建、更新、删除文档

    创建     MongoDB中使用insert方法来向集合插入文档,然后保存到MongoDB中.     db.foo.insert({"hehe":"呵呵"} ...

随机推荐

  1. JAVA版-微信高清语音.speex转.wav格式

    功能介绍: PC端将.speex文件解码为*.wav文件 使用场景: 在MAC/Linux下Java JNI 调用C Speex,后端Java处理微信服务器下载下来的微信高清语音.speex解码为.w ...

  2. CAP理论-解析

          分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ...

  3. 我的gulp第一个程序

    以前都是单枪匹马的干,从没用过模块化的打包工具,加入新的团队后,模块化开发学到不少,尤其是工具的使用.团队目前较多的使用gulp,也是最流行的一款前端打包工具.最近Team开始尝试用gulp,我也只是 ...

  4. VC6.0创建DLL动态链接库四大要素

    原文:http://blog.csdn.net/wanghaihao_1/article/details/51098451 要成功地编辑,编译和链接一个动态链接库,应该包括以下要素:建立工程文件,使用 ...

  5. kafka leader平衡策略

    1.1个partition的默认leader是replicas中的第一个replica 2.kafka controller会启动一个定时的check线程,kafka默认是5min周期,mafka是3 ...

  6. 二、Flex 布局教程:实例篇

    注:本文转自大神阮一峰,自己加了少许改动~ 上一篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法. 你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我只列出代码,详细的语法解 ...

  7. mobile webiste 中的css的font-size em及line-height等换算

    在mobile web设计 中,我们常常需要使用em这个字体大小的单位.em到底是多少呢? em到底应该设置为多少个em呢?通常换算成方法是1em=target fontsize we want/fo ...

  8. /usr/lib64/python2.6/site-packages/cryptography/__init__.py:26: DeprecationWarning: Python 2.6 is no longer supported by the Python core team

    升级python2.6到2.7后,执行ansible后一直显示警告,如标题所示. 因为安装ansible,使用的是yum的方式,而yum使用的是python2.6,所以ansible安装环境为pyth ...

  9. Python学习---Python下[字典]的学习

    Python中唯一的映射类型(哈希表)       -->Java中的HashMap<K,V> Python对key进行了哈希函数运算,根据计算的结果决定value的存储地址,所以字 ...

  10. Google Colab 免费的谷歌GPU for deep learning

    Who wants to use a free GPU for deep learning?Google Colab is a free cloud service and now it suppor ...