前言

本文完全原创,转载请说明出处,希望对大家有用。

本篇博客是个人总结,一方面以便日后查看,另一方面希望能为其他人提供一些便利。

阅读目录

正文

 加载必要文件

在使用SharePoint ECMAScript之前,我们需要引入几个JS文件:

  1. SP.js

  2. SP.Core.js

  3. SP.Runtime.js

SP.js:包含主要的能够用来获取sharepoint数据的对象,如ClientContext、Web、List、Listitem等

SP.Core.js:包含一些实用对象和帮助对象,能够用来完成基本的任务,如HTML编码、URL处理、XML字符串操作等

SP.Runtime.js:包含了核心的ECMAScript运行时的对象,封装了客户端对象模型和服务器进行交互处理的所有细节

SP.UI.<**>.js:一系列以SP.UI打头的文件提供了UI处理方面的扩展功能,例如SP.UI.Dialog.js包含了对Dialog Framework的支持

SP.Ribbon.js:包含了对Ribbon开发的支持

如果此时使用的是系统默认母板页,就不需要再次引用这些文件。如果使用的是自定义母板页,需要引入这些文件,或者在母板页里引用。

SharePoint提供了js的Debug版本,便于开发,但正式环境需要引用非Debug版本。

另外,如果有修改SharePoint Content Database数据库的代码,需要加入FormDigest:

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<script type="text/javascript" src="_Layouts/sp.runtime.js"></script>
<script type="text/javascript" src="_Layouts/sp.js"></script>
<script type="text/javascript">
$(document).ready(function () {
ExecuteOrDelayUntilScriptLoaded(function () {
var clientContext;
var listCreationInfo;
var web;
var list; clientContext = SP.ClientContext.get_current();
web = clientContext.get_web();
list = web.get_lists().getByTitle('CustomList'); clientContext.load(list);
clientContext.executeQueryAsync(function () { alert("Success!") }, function () { alert("Request failed") });
}, "sp.js");
}); </script>
</asp:Content> <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<SharePoint:FormDigest ID="FormDigest1" runat="server"></SharePoint:FormDigest>
</asp:Content>
 Manage ListItem

GetItemByItemID

       function (itemid) {
var clientContext;
var listCreationInfo;
var web;
var list; clientContext = SP.ClientContext.get_current();
web = clientContext.get_web();
list = web.get_lists().getByTitle('CustomList');;
This.item = list.getItemById(itemId);
clientContext.load(list);
clientContext.executeQueryAsync(function () { alert("Success!") }, function () { alert("Request failed") });
}

Add a new item to list

                clientContext = SP.ClientContext.get_current();
web = clientContext.get_web();
list = web.get_lists().getByTitle('CustomList');
var listItemInfo = new SP.ListItemCreationInformation();
// add the item to the list
var listItem = list.addItem(listItemInfo);
listItem.set_item('Title', "Success");
This.item = list.getItemById(itemId);
var LookupTestValue = new SP.FieldLookupValue();
LookupTestValue.set_lookupId(employeeId);
listItem.set_item('LookupTest', LookupTestValue);
listItem.update();
clientContext.executeQueryAsync(function () { alert("Success!") }, function () { alert("Request failed") });

Delete a item from list

            function deleteItem(itemId) {
var clientContext = new SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists().getByTitle('CustomList');
var item = list.getItemById(itemId);
item.deleteObject();
clientContext.executeQueryAsync(function () { alert("Success!") }, function () { alert("Request failed") });
}
 使用SPQuery
            function get_itemByQuery(title) {
try {
var clientContext = new SP.ClientContext.get_current();
this.web = context.get_web();
var list = this.web.get_lists().getByTitle('CustomList');
var query = '<View Scope=\'RecursiveAll\'>' +
'<Query>' +
'<Where>' +
'<Eq>' +
'<FieldRef Name=\'Title\' />' +
'<Value Type=\'LookUp\'>' + title + '</Value>' +
'</Eq>' +
'</Where>' +
'</Query>' +
'</View>';
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml(query);
this.Queryitems = list.getItems(camlQuery);
clientContext.load(this.Queryitems);
clientContext.executeQueryAsync(function () { alert("Success!") }, function () { alert("Request failed") });
}
catch (e) {
alert("error occurred" + e.toString());
}
}

Sharepoint ECMAScript的更多相关文章

  1. SharePoint 2013 Excel Services ECMAScript 示例之明日限行

    前言:最近遇到一个“明日限行”的功能,北京的交通啊,这个不在今天讨论范围内,暂不吐槽,想想代码开发,还要写WebPart部署,很麻烦,而且部署服务器,需要领导审批,想绕过这个麻烦事儿,就想到客户端了, ...

  2. Get the current user permission level on a list item with ecmascript 分类: Sharepoint 2015-07-14 14:13 7人阅读 评论(0) 收藏

    To Check current users permissions using Ecmascript\Javascript client object model SharePoint 2010. ...

  3. SharePoint 使用ECMAscript对象模型来操作Goup与User

    这里总结了关于使用ECMAscript对象模型来操作Goup与User的常用情况,内容如下:     1.取得当前Sharepoint网站所有的Groups     2.获取当前登录用户的Title与 ...

  4. SharePoint 2013 实战碎嘴(ECMAScript客户端对象模型): 提示某个列表不存在

    简单情景描述1:(在Sharepoint 2013 Solution 中) 在相应的.aspx页面引入 一下两个.js文件: <script type="text/javascript ...

  5. SharePoint 使用ECMAscript对象模型来读取帖子列表

    本随笔讲述如何用JavaScript来读取SharePoint 2013 中blog相关的帖子列表. ASCX File Content: <div id="divGetItemsFr ...

  6. SharePoint 2013 入门教程

    以下文章是自己在学习SharePoint的过程中,不断积累和总结的博文,现在总结一个目录,分享给大家.这个博客也是自己从SharePoint入门,到一个SharePoint开发的成长记录,里面记录的都 ...

  7. SharePoint 2013开发入门探索(二)- 列表操作

    我们如何用代码对SharePoint列表做些例如增删改查的操作呢?如果您的程序可以部署到服务器上,就可以使用 服务器对象模型,因为服务器对象模型提供的功能最多,限制最少:否则可能要选择客户对象模型等其 ...

  8. 如何:对 SharePoint 列表项隐藏 ECB 中的菜单项

    可以通过使用功能框架向编辑控制块 (ECB) 菜单添加新的自定义操作.但是,您不能使用此方法进行相反的操作,即隐藏现有的 ECB 菜单项,因为它们是通过使用 ECMAScript(JavaScript ...

  9. SharePoint 2013 日历根据Category显示不同颜色

    最近有一个小需求,就是SharePoint的日历类型列表,用户希望根据Event里面的Category不同,在前台视图显示成不同的颜色,绞尽脑汁,想到这么个办法,分享给大家,希望有更好方法的也能留言推 ...

随机推荐

  1. blender, 旋转和平移视图

    旋转视图:MMB(鼠标中键) 平移视图:shift+MMB

  2. OpenCV3+Python3

    OpenCV3计算机视觉Python语言实现笔记 图像处理与OpenCV Python3与OpenCV3.3 图像处理 OpenCV文摘 基于Python3 + OpenCV3.3.1的远程监控程序 ...

  3. Windows Phone 性能优化(二)

    这篇文章的 demo 是在 (一)的基础上进行的调整,逻辑基本相似.本文只列和 上一篇出不同的代码. 为了实现自定义的虚拟化,把上一篇文章的 ListBox 换成 ScrollViewer + Ite ...

  4. 一款基于HTML5 Canvas的画板涂鸦动画

    今天给各网友分享一款基于HTML5 Canvas的画板涂鸦动画.记得之前我们分享过一款HTML5 Canvas画板工具,可以切换不同的笔刷,功能十分强大.本文今天要再来分享一款基于HTML5 Canv ...

  5. SQL查询优化联合索引 与 单一列的索引

    目前WEB的普及太快,在实际的开发中,一旦遇到大数据量的时候就需要做到优化,让查询的更快,才能给客户更好的体验,也能够在程序上避免timeout. 部分转载自:https://www.cnblogs. ...

  6. 浅析StackTrace

    我们在学习函数调用时,都知道每个函数都拥有自己的栈空间.一个函数被调用时,就创建一个新的栈空间.那么通过函数的嵌套调用最后就形成了一个函数调用堆栈.在c#中,使用StackTrace记录这个堆栈.你可 ...

  7. curses库--libncurses5-dev--游标移动及屏幕的显示

    curses是一个在Linux/Unix下广泛应用的图形函数库.,作用是可以绘制在DOS下的用户界面和漂亮的图形. curses的名字起源于"cursor optimization" ...

  8. 举例说明:Hadoop vs. NoSql vs. Sql vs. NewSql

    转自:http://blog.jobbole.com/86269/   尽管层次数据库如今在大型机上依然被广泛使用,但关系数据库(RDBMS)(SQL)已经占领了数据库市场,并且表现的相当优异.我们存 ...

  9. ubuntu 解压命令全部

    .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)-------------------------- ...

  10. ti8168平台的tiler memory

    DM8168 DMM/TILER简介 1.概述 如图4-1,DMM定位在SDRAM控制器的前端,是所有initiator产生的内存存取的接口. 动态内存管理器DMM,是一个专门的管理模块,广义上说,包 ...