Office365学习笔记—创建WikiPage

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

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

 1 function createListItem(version,itemTitle) {
 2 
 3             var clientContext = new SP.ClientContext.get_current();
 4             var oWebsite = clientContext.get_web();
 5             var oList = oWebsite.get_lists().getByTitle("项目计划历史");
 6 
 7             var fileCreateInfo = new SP.FileCreationInformation();
 8             fileCreateInfo.set_url(version+".aspx");
 9             fileCreateInfo.set_content(new SP.Base64EncodedByteArray());
10             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>";
11                           
12             for (var i = 0; i < fileContent.length; i++) {
13                 fileCreateInfo.get_content().append(fileContent.charCodeAt(i));
14             }
15             
16             clientContext.load(oWebsite);
17             var folder = oWebsite.getFolderByServerRelativeUrl(_spPageContextInfo.webServerRelativeUrl + "/ProjectHistory/"+itemTitle);
18             this.newFile = folder.get_files().add(fileCreateInfo);
19             clientContext.load(this.newFile);
20             clientContext.executeQueryAsync(
21                 Function.createDelegate(this, successHandler),
22                 Function.createDelegate(this, errorHandler)
23             );
24             function successHandler() {
25                 
26                 this.file = oWebsite.getFileByServerRelativeUrl(this.newFile.get_serverRelativeUrl());
27                 this.listItem = this.file.get_listItemAllFields();
28                 var htmlconter=$("#taskcont").html();
29                 this.listItem.set_item("WikiField", htmlconter);
30                 
31                 this.listItem.update();
32                 this.onConversionToMasterPageSuccess = function (sender, args) {
33                 
34                 };
35                 this.onConversionToMasterPageFailure = function (sender, args) {
36                     alert(args.get_message() + "

" + args.get_stackTrace());
37                 };
38                 clientContext.executeQueryAsync(
39                 Function.createDelegate(this, this.onConversionToMasterPageSuccess),
40                 Function.createDelegate(this, this.onConversionToMasterPageFailure));
41             }
42             function errorHandler() {
43                 alert("Request failed: " + arguments[1].get_message());
44             }
原文地址:https://www.cnblogs.com/wanren/p/3576313.html