ECMAScript客户端模型,是SharePoint2010推出的三种客户端模型“.NET托管”、“ECMAScript”、“Sliverlight”的一种,今天正好看到这,尝试了下,也拿出了和大家分享下。我自己感觉,客户端模型,和sp的对象模型没有太多区别,就是用起来,更加不得心应手了。今天写了下Script的,各种不好使,各种没调试,各种郁闷,哎。怎的一个愁字了得。好了,不费话了。
客户端对象模型的优点,就是可以在没有服务器的条件下,进行客户端编程。比如,我是一个Moss小用户,然后我还没有服务器的访问权限,我就可以用Designer了。首先、新建一个aspx页,在头部添加SP.js的引用,我们就可以在这个页上,写我们的客户端模型代码了。添加位置在顶部PlaceHolderAdditionalPageHead这个节点里面,添加<sharepoint:ScriptLink Name="SP.js" runat="server" OnDemand="true" Localizable="False"></sharepoint:ScriptLink>的js引用。
下面是我做的一个例子:在在页面上写上<script>,然后编写我们的js脚本就可以了,感觉语法的格式,和sp对象模型很相似,首先是打开网站,打开列表,然后找到列表项就可以了。不过,和sp对象模型还是有区别的,sp对象模型,生成了对象就可以调用里面的值了,而客户端对象模型,还需要load一下,才可以取到里面的值。大家在写js的时候,一定要注意拼写!!!血的教训,因为调试起来非常不方便,所以第一遍写的时候,就要仔细。
我的例子写了一个GetListItem的函数,然后可以读取列表里面的项目,在点击button的时候,读取列表里面的条目,然后显示出来。代码附在后面,有兴趣的朋友,可以试一试。效果图就是下图,点击之后,下面是图中蓝框的样子。自己也是初识ECMAScript,拿出来和大家分享下,如果有哪里说的不对的地方,欢迎大家留言指正。当然,我们不可能记住每个对象的使用,我们可以访问微软的网站,来查询我们需要的对象定义的方法和变量,可以点击下面的地址http://msdn.microsoft.com/en-us/library/ee538253.aspx
<script type="text/javascript">
function getlistitem()
{
var mycontext=new SP.ClientContext();
var mysite=mycontext.get_web();
var query = new SP.CamlQuery();
query.set_viewXml("<View><Query></Query></View>");
var mylist=mysite.get_lists().getByTitle('MyFirstLists');
myitem= mylist.getItems(query);
mycontext.load(myitem);
mycontext.executeQueryAsync(Function.createDelegate(this,this.getsuccessed),Function.createDelegate
(this,this.getfailed));
}
function getsuccessed()
{
var str="";
var listsE=myitem.getEnumerator();
while(listsE.moveNext())
{
str+=listsE.get_current().get_item("Title")+"<br>";
}
document.getElementById("lists").innerHTML=str;
}
function getfailed(sender,args)
{
alert("failed~!");
}
</script>
<div><input value="get2" type="button" onclick="getlistitem()"/></div>
<div id="lists"></div>
js写的很简单,希望大家不要见笑,如果有好的建议或者意见,希望大家给我留言,欢迎讨论。
作者:霖雨
出处:http://www.cnblogs.com/jianyus
本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。