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的時候,一定要注意拼寫!!!血的教訓,因為調試起來非常不友善,是以第一遍寫的時候,就要仔細。
<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寫的很簡單,希望大家不要見笑,如果有好的建議或者意見,希望大家給我留言,歡迎讨論。
本文版權歸 霖雨和部落格園共有,歡迎轉載,但請注明出處。