使用客户端对象模型读取SharePoint列表数据
客户端对象模型提供了强有力的方式,从远程客户端应用程序管理列表。
1. 管理员身份打开VS,新建项目Windows窗体应用程序,命名ReadSPListData,确保选择.NET Framework 3.5。
2. 添加控件。
控件类型:
3. 你必须添加一个类ProductInfo。
namespace ReadSPListData
{
class ProductInfo
{
public string productName { get; set; }
public string productSKU { get; set; }
public string productPrice { get; set; }
}
}
4. 双击两个按钮,添加方法。首先是Exit:
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
5. 然后是Load。首先要添加合适的引用。右击项目,添加引用Microsoft.SharePoint.Client.dll和Microsoft.SharePoint.Client.Runtime.dll。并在代码中添加using。
你可能会遇到命名空间冲突。添加如下代码
using ClientOM = Microsoft.SharePoint.Client;
using ClientOM = Microsoft.SharePoint.Client;
6. 添加Load代码。
private void btnLoadData_Click(object sender, EventArgs e)
{
string SPUrl = txtbxSPURL.Text;
IEnumerable
myListItems;
List
myProducts = new List
();
ClientOM.ClientContext SPContext = new ClientOM.ClientContext(SPUrl);
ClientOM.Web mySPSite = SPContext.Web;
ClientOM.ListCollection myListCollection = mySPSite.Lists;
var productsList = SPContext.Web.Lists.GetByTitle("Products");
ClientOM.CamlQuery myCamlQuery = new CamlQuery();
IQueryable
myList = productsList.
GetItems(myCamlQuery);
myListItems = SPContext.LoadQuery(myList);
SPContext.ExecuteQuery();
var returnedListData = from prod in myListItems
select prod;
foreach (ClientOM.ListItem tempListItem in returnedListData)
{
ProductInfo tempProd = new ProductInfo();
tempProd.productName = tempListItem.FieldValues.
Values.ElementAt(1).ToString();
tempProd.productSKU = tempListItem.FieldValues.
Values.ElementAt(8).ToString();
tempProd.productPrice = tempListItem.FieldValues.
Values.ElementAt(9).ToString();
myProducts.Add(tempProd);
}
dtgrdSPListData.DataSource = myProducts;
}