Sharepoint 2010客户端对象模型使用 Ecmascript

本文介绍如何在SharePoint2010中使用ECMAScript调用客户端对象模型,实现与SharePoint的交互。通过具体示例展示了如何加载客户端对象模型,获取站点上下文内容,并获取特定列表的信息。
ECMAScript是基于javascript的客户端脚本语言,SharePoint 2010中支持使用ECMAScript来调用客户端对象模型

背景

众所周知客户端对象模型是SharePoint 2010 中相当实用的新特性之一,你可能已经了解在SharePoint2007中你如果不想再服务器端调用SharePoint对象,只有通过Web Services来实现。现在在SharePoint 2010 中你可以使用客户端对象模型来实现与SharePoint的交互,当然你也可以继续使用Web Services的方式。

SharePoint 客户端对象模型工作原理

2011-03-24-SPClientObjectModel-01.png

SharePoint客户端对象模型是SharePoint的API之一运行在客户端,他通过应用程序将API调用转化为XML 请求,然后传输到SharePoint服务器端。在服务器端,XML请求被一个名为Client.svc的服务处理为SharePoint服务器端对象模型然后返回结果。得到结果后,Client.svc在把他们转化为JSON对象,并返回到客户端对象模型。最后在客户端JSON再被转义成ECMAScript 对象,从而提供ECMAScript服务。

参考1: http://msdn.microsoft.com/en-us/library/ee538253.aspx
参考2: http://msdn.microsoft.com/en-us/library/ee857094(office.14).aspx

使用ECMAScript

  1. 创建一个列表名为Product然后添加一些记录。
  2. 在页面库中创建一个ASPX 测试页面。
  3. 添加内容编辑web part并加入如下代码。
01<script type="text/javascript">
02  
03ExecuteOrDelayUntilScriptLoaded(MainFunction, "sp.js"); 
04    
05var objContext = null
06var objWeb = null     
07var objList = null;
08var objItem = null;
09  
10    function MainFunction() {   
11        objContext = new SP.ClientContext.get_current();
12        objWeb = objContext.get_web();   
13        objList = objWeb.get_lists().getByTitle("Product");
14    
15        objContext.load(objList);
16  
17        objContext.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFail));   
18    }   
19  
20    function onSuccess(sender, args) {
21        alert('Item Count: ' + objList.get_itemCount());
22    }   
23  
24    function onFail(sender, args) {   
25        alert('Some error has occured.');   
26    }  
27 </script>

2011-03-24-SPClientObjectModel-02.png

说明

我们使用ExecuteOrDelayUntilScriptLoaded(Func, "sp.js") 来加载客户端对象模型。该函数是客户端对象模型的核心,并加载sp.js以及最为主函数的函数名。我们必须用过SP.ClientContext来获取站点上下文内容并通过get_web()方法获取网站的上下文内容,然后通过getByTitle方法来获取先前创建的list对象。在加载所有对象是可能引起延迟或性能下降。最后我们通过异步加载成功时调用OnSuccess()方法,失败是调用OnFail() 方法。

结论

ECMAScript是基于javascript的客户端脚本语言,SharePoint 2010中支持使用ECMAScript来调用客户端对象模型。用户能在SharePoint 2010的Aspx页面中使用ECMAScript,即使在没有VS或者SharePoint Designer的情况下,也能轻松调用的SharePoint中的内容并加入复杂的web services。

转载于:https://www.cnblogs.com/windteam/archive/2011/06/24/2088613.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值