0

我想通过客户端对象模型加载Sharepoint的默认视图字段(我使用的是 Silverlight)。以下是我发现的一些相关内容(在 msdn 上):list

  • List具有DefaultViewUrl[类型string]的属性
  • List有方法GetView(Guid)
  • List具有Views[类型ViewCollection]的属性
  • ViewCollection有方法GetById(Guid)
  • ViewCollection有方法GetByTitle(string)
  • View具有DefaultView[类型bool]的属性

这就是我能找到的一切。如您所见,没有直接获取 DefaultView 的方法(缺少DefaultViewIdon 属性ListGetByUrl(string)方法 on ViewCollection)。

在我看来,唯一的解决方案是遍历List.Views集合并检查DefaultView每个View. 这有点……嗯,效率低下……

我错过了什么?有人看到一些直的独奏吗?感谢您的想法。

4

2 回答 2

1

使用 LINQ 语句尝试 LoadQuery

例如:

private IEnumerable<View> viewQuery = null;
public void LoadDefaultView()
{
    using (ClientContext ctx = ClientContext.Current)
    {
        list = ctx.Web.Lists.GetByTitle("YourList");

        viewQuery = ctx.LoadQuery(list.Views
                   .Include(v => v.Title) // include more lamda statements here to populate View Properties
                   .Where(v => v.DefaultView == true));

        ctx.ExecuteQueryAsync(LoadDefaultViewSuccess, LoadDefaultViewFailure);
    }
}
private void LoadDefaultViewSuccess(object sender, ClientRequestSucceededEventArgs args)
{
    // should only be one View in views
    View defaultView = viewQuery.FirstOrDefault();

    // use default.Title here
}
private void LoadDefaultViewFailure(object sender, ClientRequestFailedEventArgs args)
{
    // handle failure here
}

MSDN SharePoint 2010 Silverlight COM 文章在这里 http://msdn.microsoft.com/en-us/library/ee538971.aspx

于 2012-04-12T15:13:26.357 回答
0

怎么样SPList.DefaultView?SPList DefaultView 成员是一个 SPView 对象(不是 bool)

于 2011-08-08T15:11:26.477 回答