使用ClientObjectModel访问SharePoint数据
2013-08-21 19:28
1111 查看
ClientObjectModel(COM)可以理解为SharePoint对外提供的APIs,通过操纵它我们可以轻松的完成对SharePoint数据的CRUD操作。当然我们可以在SharePoint的自定义页面中调用它,也可以在第三方软件中调用它,并且它的使用方法也非常的简单。要调用它我们必须引用如下程序集:Microsoft.SharePoint.dll, Microsoft.SharePoint.Client.dll,Microsoft.SharePoint.Client.Runtime。
对应这套API将SharePoint 分为了三大块:Folder,File,Item。通过COM返回的folder和File对象都不能进行修改,如果要修改记录必须对返回的Item对象进行修改。估计Folder和File在这套API中充当Metadata来使用,而与这些Metadata对应的List,ListItem着代表着每条真实存在的记录。为了验证这个想法,我***了一个迷你的CRUD程序,如下为其展示效果:
图1
图2
图3
图4
图5
对应这套API将SharePoint 分为了三大块:Folder,File,Item。通过COM返回的folder和File对象都不能进行修改,如果要修改记录必须对返回的Item对象进行修改。估计Folder和File在这套API中充当Metadata来使用,而与这些Metadata对应的List,ListItem着代表着每条真实存在的记录。为了验证这个想法,我***了一个迷你的CRUD程序,如下为其展示效果:
图1
图2
图3
图4
图5
Common Methods
private ClientContext CreateClientContext() { NetworkCredential credential = new NetworkCredential(USERNAME, PASSWORD, DOMAIN); ClientContext context = new ClientContext(ROOTPATH); context.Credentials = credential; return context; }
Create
ClientContext spContext = CreateClientContext(); Web website = spContext.Web; Folder folder = website.GetFolderByServerRelativeUrl(LIBRARYPATH); spContext.Load(website); spContext.Load(folder); spContext.Load(folder.Files); spContext.ExecuteQuery(); FileCreationInformation file = new FileCreationInformation(); file.Content = FileUpload1.FileBytes; file.Url = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); folder.Files.Add(file); spContext.ExecuteQuery();
Read
ClientContext spContext = CreateClientContext(); Web website = spContext.Web; Folder DocLib = website.GetFolderByServerRelativeUrl(LIBRARYPATH); spContext.Load(website); spContext.Load(DocLib); spContext.Load(DocLib.Files); spContext.ExecuteQuery(); GridView1.DataSource = DocLib.Files; GridView1.DataBind();
Update
ClientContext spContext = CreateClientContext(); Web website = spContext.Web; Microsoft.SharePoint.Client.File file = website.GetFileByServerRelativeUrl(HiddenField1.Value); List docLib = spContext.Web.Lists.GetByTitle("测试库"); spContext.Load(website); spContext.Load(docLib); spContext.Load(file); spContext.Load(file.ListItemAllFields); spContext.ExecuteQuery(); Microsoft.SharePoint.Client.ListItem item = docLib.GetItemById(file.ListItemAllFields.Id); spContext.Load(item); spContext.Load(item.File); item.File.CheckOut(); item["Title"] = new Random().Next(10000,99999).ToString(); item.Update(); item.File.CheckIn(DateTime.Now.ToString(), CheckinType.OverwriteCheckIn); spContext.ExecuteQuery();
Delete
ClientContext spContext = CreateClientContext(); Web website = spContext.Web; Microsoft.SharePoint.Client.File file = website.GetFileByServerRelativeUrl(HiddenField1.Value); spContext.Load(website); spContext.Load(file); spContext.Load(file.ListItemAllFields); spContext.ExecuteQuery(); file.DeleteObject(); spContext.ExecuteQuery();
Source Code
相关文章推荐
- Sharepoint2010应用开发四:使用客户对象模型(Client Object Model)向SharePoint列表写数据
- [SharePoint 2010] Javascript Client Object Model 在SharePoint2010中的使用方法
- 在C#开发中如何使用Client Object Model客户端代码获得SharePoint 网站、列表的权限情况
- [转]SharePoint 2010: Client Object Model for JavaScript (ECMAScript)(使用客户端对象模型)
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- 使用 SharePoint 2010 Client Object Model 修改用户Email(邮箱) 地址
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- SharePoint 2010新特性使用Client Object Model在客户端开发
- SharePoint 2010 匿名用户调用Client Object Model访问列表项
- 使用Jscex增强SharePoint 2010 JavaScript Client Object Model (JSOM)
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- SharePoint 2010新特性使用Client Object Model在客户端开发
- Sharepoint2010应用开发三:使用客户端对象模型(Client Object Model)读取列表数据
- [SharePoint]javascript client object model 获取lookup 类型的field的值,包括user类型(单人或者多人)的值。how to get the multiple user type/lookup type field value by Javascript client object model
- 关于SharePoint 的Client object model该何时load和execut query的一点自己的看法
- Dropthings 2.6 数据访问使用了ado.net data model
- [.NET MVC4 入门系列03]使用Controller访问Model中数据
- 总结:Sharepoint2010 Client Object Model -- 获得Sharepoint 网站当前用户
- Sharepoint学习笔记 –架构系列—Sharepoint的客户端对象模型(Client Object Model)
- MOSS 2010:Visual Studio 2010开发体验(20)——使用ADO.NET Data Service快速访问SharePoint列表数据