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集合

    Java集合类是一种特别有用的工具类,可用于存储数量不等的对象.Java集合大致可分为Set.List.Queue和Map四种体系 Set代表无序.不可重复的集合 List代表有序.重复的集合 Map ...

  2. python--boto3 之 与dynamoDB 的基本交互,表的备份与恢复

    最近因工作需要,研究了一下boto3中dynamoDB部分,略有心得,在此总结一下. 首先是boto3的安装,在装有python和pip的机器上,运行 sudo pip install boto3 官 ...

  3. Effective C++ .09 不在构造和析构过程中调用virtual函数

    看过C++对象模型的话就可以知道,在构造基类时,完整的vtable没有建立起来(表项没有被相应的子类函数替换),因而无法调用到子类的函数(即构造函数中的virtual函数是本类里的方法,不是virtu ...

  4. Angularjs ngTable使用备忘

    项目中用到angularjs的表格ng-table,功能相当强大,像搜索.排序.checkbox.分页.每页表格显示数目等都有.API,demo什么的也只能参考官网了.这里做个备忘,哪天肯定还会用到. ...

  5. 微信小程序中使用wxParse展示HTML内容

    wxParse的GitHub地址:https://github.com/icindy/wxParse 一.数据内容: 请求地址:https://m.quanchepin.com/index.php?a ...

  6. Spring中无法访问resources目录下页面或静态资源

    1.新建项目,在 resources 目录下创建 views 目录,在 views 目录下创建 index.html 页面,项目跑起来,浏览器访问页面,提示找不到页面之类的错误提示. 2.再尝试访问图 ...

  7. hdu 1159 Common Subsequence(最长公共子序列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 Common Subsequence Time Limit: 2000/1000 MS (Jav ...

  8. 第三次scrum作业!

    1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 刘洋江 薛思汝 2.个人在小组第三次冲刺任务及其完成情况描述 根据小组讨论所分配任务,积极辅助组长以及各个成员,理清思路,编写代码,尽量在规定时间 ...

  9. Android学习——自定义控件(二)

    这篇文章来介绍自定义组合控件,自定义组合控件的应用场景很多,比如当你的UI如下时: 倘若不使用组合控件,则需要在XML文件中声明4个TextView和4个EditText,而使用了组合控件,则只需要四 ...

  10. xlwings: Write Excel macro using python instead of VBA

    i want to write Excel macros to deal with the data, but i am not familiar with VBA language. so i de ...