SharePoint 2010的JavaScript对象模型
时间:2009-12-02 21:27:44
作者:officeba 【认证】
SharePoint 2010的JavaScript对象模型
为制订本关于Excel服务的JavaScript对象模型系列感谢基督教施蒂希,Excel中的顾问服务项目工作。
Excel服务2010年增加了两个全新的编程API:在REST的API,我在先前的职位包括在内,一系列的JavaScript对象模型(JSOM),我将讨论这个职位。
JavaScript对象模型(JSOM)实现了使用Excel服务的一套全新的解决方案。随着JSOM有可能发现和反应与Excel Web Access中(德韵)到用户的交互网络的一部分,并进行编程交互与一个或多个EWA的Web部件。
如何使用?
使用JSOM是通过在页面上插入包含EWA的网页部份(包括JavaScript代码)。这可以通过添加代码到Web部件页使用内容编辑器Web部件或通过直接编辑。aspx页本身。
什么特性?
该JSOM使开发,如表,项目范围访问,表,数据透视表和图表。它可以设置和检索单个细胞或从Excel风格格A1范围或指定的范围值。该JSOM还规定所提出的当用户改变了积极的选择或活动单元格或当用户开始编辑单元格的事件。此外,JSOM可用于滚动到不同的地区和切换显示的工作表或命名项目。
要看到的JSOM请单击下面的缩略图类图。
请注意,类图是初步的,并可能在2010年时,Excel服务正式推出的时间了一些变化。
使用JSOM - 简单实例
人们经常要使用作为数据源的EWA的网络的一部分。 EWA的Web部件可以通过SharePoint消耗的网页过滤框架的一部分数据。但是相反的,以数据源EWA的网页不支持部分由SharePoint 2010。
这个例子展示了使用在一个EWA的用户事件检测JSOM,并利用这些用户事件和相应的数据以编程器另一EWA的。这可以用来有效地使用作为数据源的EWA的。
所有的开发者或用户需要做的建设有两个EWA的Web部件的Web部件页与众不同的是增加一个内容编辑器Web部件和链接,如下面的例子到一个文件,其中包含的JavaScript代码。
<script type="text/javascript">
/ /初始化变量
无功EWA1 =空;
无功EWA2 =空;
/ /设置网页的onload事件处理程序,继续执行pageLoad的函数定义如下一旦在页面加载如果(window.attachEvent)
(
window.attachEvent(“的onload”,pageLoad的);
)
/ /进入GetEWA函数定义如下一旦Excel服务JavaScript的OM公司是'好'
功能pageLoad的()
(
Ewa.EwaControl.add_applicationReady(GetEwa);
)
/ /附加到个别Excel Web Access中(德韵)Web部件
功能GetEwa()
(
EWA1 = Ewa.EwaControl.getInstances()。getItem(0);
EWA2 = Ewa.EwaControl.getInstances()。getItem(1);
如果(EWA1&EWA2)
(
/ /添加的ActiveSelectionChanged事件的事件处理
EWA1.add_activeSelectionChanged(activeSelectionChangedHandler);
)
)
/ /这是对ActiveSelectionChanged事件处理程序。
/ /当用户更改了EWA的Web部件的选择,这一事件引发
功能activeSelectionChangedHandler(rangeArgs)
(
VAR的海豹= rangeArgs.getRange();
无功表= sel.getSheet()。getName();
= rangeArgs.getFormattedValues VAR的值();
/ /确保用户选择Sheet1上细胞 - 我们可能不希望任何行动或采取不同的,如果用户在不同的工作表
如果(表=“工作表Sheet 1”)
(
/ /检查用户是否有点击单元格A1,A2,B1联系或B2而作为按钮选择了其他网络的一部分观点
如果(sel.getColumn()“= 1&&sel.getColumn()”= 2&&sel.getRow()“= 1&&sel.getRow()”= 2)
(
EWA2.getActiveWorkbook()。getNamedItems()。getItemByName(值[0] [0])。activateAsync(activateCallBack,价值观[0] [0]);
)
/ /检查用户是否已通过解答14点击其中包含公司名称 - 复制选定的名字到其他网页的一部分单元格A5
如果(sel.getColumn()== 1&&sel.getColumnCount()== 1&&sel.getRow()“= 5&sel.getRowCount()”= 10)
(
EWA2.getActiveWorkbook()。getRange('股票',1,1,values.length,1)。setValuesAsync(价值观,setCallBack,空);
)
)
)
功能activateCallBack(returnValues)
(
/ /所有我们在这里做的是设置在窗口的状态,表明该项目已被命名的第二个Web部件启动
/ /我们还可以做在这种情况下 - 在其他情况一无所知,这可能是可取的或必要的运行代码一旦完成异步运行的功能
window.status ='活性炭命名项目“'+ returnValues.getUserContext()+'”中的“详细信息”EWA的Web部件';
)
功能setCallBack(returnValues)
(
/ /所有我们在这里做的是设置在窗口的状态,表明数据是从第一个网络的一部分,第二部分复制网站
window.status ='选择的价值已经被复制的“StockInfo”EWA的Web部件“详细信息”EWA的Web部件';
)
“/脚本”
因此,让我们来看看什么样的JavaScript代码这几句,我们在网上的部分页面嵌入可以做。
在左边的Web部件包含四个“按钮”(单元格A1,A2,B1和B2)的字符串,其中包含名为项目对应的右手方网络的一部分存在。 “市值”,“卷”,“P / E比率”的图表和“股票”是一个命名范围。
下面这些“按钮”是公司名称的名单 - 这些并没有固定下来,并可以有所改变或新的可以通过一个Web部件页观众说。旁边的公司名称是每个公司的股票最近的股票价格。这些数据以及其他股市在这个例子中使用的数据可以实时数据检索服务可以通过Excel的外部数据的支持,或通过用户定义的函数。
该网站部分网页浏览器可以选择一个或多个只需使用鼠标选择这两家公司的名称细胞公司。在这种情况下,用户选择了“微软”和“Contoso”的网站在左侧部分 - JavaScript代码检测的积极选择和副本改变这些公司的名称(“微软”和“Contoso的”),以正确的Web部件。
然后点击用户的市值“按钮”(单元格) - 再次检测的JavaScript代码中的积极变化,因此选择正确的网络交换机的一部分,显示市值图表。
接下来,用户突出显示所有四家公司 - 这一变化是积极的选择再次检测和选定的公司网站从左侧到右侧部分网络的一部分复制。在市值这就效果图被更新,以显示所有的四家公司。
最后,关于音量“按钮,用户点击”(格B1) - 的JavaScript代码,从而导致右侧显示股票交易量图表网络的一部分,显示所有4个被选中的公司。
摘要
该JSOM是一个强大的新的API,扩展Excel的功能和服务,使Excel的服务给全新的解决方案中。该JSOM可以单独使用,以提供一个自动化Excel Web Access中,或提供部分手段对不同EWA的Web部件的交通联系。它也可以使用,例如在新的Visio服务的JavaScript对象模型,冰地图SDK和很多人来构建定制的解决/ mash - ups代表与其他API。