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. python caser运行编码

    #!/usr/bin/env python# -*- coding:utf-8 -*-import os def encryption(): str_raw = raw_input("请输入 ...

  2. JavaScript的进阶之路(三)引用类型之Object类型和Array类型

    引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var o ...

  3. html中块级元素和行内元素

    块级元素和行内元素的三个区别 1.行内元素与块级元素直观上的区别: 行内元素会在一条直线上排列,都是同一行,水平方向排列 块级元素独占一行,垂直方向排列.块级元素从新行开始结束接着一个断行 2.块级元 ...

  4. [转]JSON.parse()和JSON.stringify()

    parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...

  5. 在IIS中浏览网站时出现:无法打开登录所请求的数据库 "***",登录失败

    在IIS中发布Web应用程序后,浏览网站时出现无法打开登录所请求的数据库 "***",登录失败错误,如下图所示: 解决办法:打开系统Web.Config配置文件,查看数据库连接串是 ...

  6. CentOS 7运维管理笔记(12)----GUI配置工具Webmin的安装

    早期的Linux系统管理员或是Web管理员在修改服务器配置时使用最多的就是vi编辑器,但是现在越来越多的基于GUI界面的配置工具出现了,毕竟人们还是喜欢以直接的可视化的方式来修改服务器的配置,而不是再 ...

  7. 转:hive面试题

    有一张很大的表:TRLOG该表大概有2T左右TRLOG:CREATE TABLE TRLOG(PLATFORM string,USER_ID int,CLICK_TIME string,CLICK_U ...

  8. Spring返回json数据

    第一种形式:使用注解@ResponseBody @RequestMapping(value = "/admin/jq", method = RequestMethod.GET) @ ...

  9. python(day1-11)

    day1:Python入门 day2:数字类型字符编码 day3:函数 day4:模块与包 day5:常用模块 day6:面向对象 day8:异常处理 day9:网络编程 day10:并发编程 day ...

  10. 关于ios 10 的新的部分

    编译器Xcode 8.2.1  SDK 10.2 1.   关于麦克风,相机,相册等部分的权限,需要在info.plist内进行设置,否则会出现crash.