SharePoint 2010 ECMAScript客户端模型简单示例

  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

  本文版权归 霖雨和博客园共有,欢迎转载,但请注明出处。

原文地址:https://www.cnblogs.com/jianyus/p/2370166.html