1、创建Silverlight时,选择Silverlight 4,不要选择版本5,试了很久版本5都调用不了,自己也不知道什么原因,谷歌也没找到答案,后来尝试版本4,可以调用;
至于Host the Silverlight application是否勾选没有影响;
2、Silverlight中使用客户端脚本,和Net中不一样,要添加下面两个引用;
3、两个需要的引用,在服务器上位置为C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\ClientBin,如下图:
4、然后在Silverlight的cs文件中添加引用,如下:
using Microsoft.SharePoint.Client;
然后添加读取List的代码,如下:
public string url = "http://server:80"; Web web; List list; ListItemCollection itemColl; string listName = "Silverlight"; string camlStr = ""; private void btn_ShowMessage_Click(object sender, RoutedEventArgs e) { getdata(); } public void getdata() { try { ClientContext context = new ClientContext(url); web = context.Web; list = web.Lists.GetByTitle(listName); CamlQuery query = new CamlQuery(); query.ViewXml = camlStr; itemColl = list.GetItems(query); context.Load(itemColl); context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnSuccessed), new ClientRequestFailedEventHandler(OnFailed)); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void OnSuccessed(Object sender, ClientRequestSucceededEventArgs args) { this.Dispatcher.BeginInvoke(LoadData); } private void LoadData() { String data = string.Empty; foreach (ListItem item in itemColl) { data += item["Title"].ToString() + "\r\n"; } lb_Message.Content = data; } private void OnFailed(Object sender, ClientRequestFailedEventArgs args) { this.Dispatcher.BeginInvoke(delegate() { MessageBox.Show("Get Data Failed"); }); }
5、前台页面添加Silverlight展示WebPart,添加完毕如下图:
6、点击ShowMessage,执行客户端对象模型的方法,结果如下图:
总 结
自己对于Silverlight不是很熟悉,只是小有了解SharePoint,所以有问题之处还请大家指正。尝试了很多次,才发现如何能在Silverlight中使用SharePoint客户端对象模型,希望分享给有需要的人,给大家一个参考吧。
好了,就到这里,休息。。休息一下。。
时间: 2024-10-04 13:12:53