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() + "\r\n\r\n" + 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             }

 

posted @ 2014-03-02 08:35  美酒与歌  阅读(1088)  评论(0编辑  收藏  举报