通过Url - 客户端对象模型检索SharePoint视图

时间:2015-01-12 10:49:39

标签: sharepoint office365 csom

我在查找如何通过客户端对象模型从视图中检索数据时遇到了一些麻烦。我有可用的列表视图的Url,但我似乎无法通过此获取数据。我可以检索List,但只返回默认视图,而不是特定视图。

View类具有ViewCollection.GetById的属性,但这就是要求Guid,我也不知道是通过Url获取的。这有可能吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,您可以通过以下方式检索View

如何通过其网址检索视图

以下示例演示了如何通过Url检索View:

using System.Linq;
using Microsoft.SharePoint.Client;

namespace SharePoint.Client.Utilities
{
    public static class ViewExtensions
    {
        public static View GetViewByUrl(this List list,string viewUrl)
        {
            var ctx = list.Context;
            var result = ctx.LoadQuery(list.Views.Where(v => v.ServerRelativeUrl == viewUrl));
            ctx.ExecuteQuery();
            return result.FirstOrDefault();
        }
    }
}

用法

var viewUrl = "/[site]/[web]/[list]/viewname.aspx";
using (var ctx = new ClientContext(webUri))
{
   var list = ctx.Web.Lists.GetByTitle(listTitle);
   var view = list.GetViewByUrl(viewUrl);
   Console.WriteLine(view.Title);
}