我想通过客户端对象模型(我正在使用Silverlight)为Sharepoint list
加载默认视图的字段。以下是我发现的一些相关内容(on msdn here):
List
的财产DefaultViewUrl
[类型string
] List
有方法GetView(Guid)
List
的财产Views
[类型ViewCollection
] ViewCollection
有方法GetById(Guid)
ViewCollection
有方法GetByTitle(string)
View
的财产DefaultView
[类型bool
] 这就是我能找到的一切。正如您所看到的,没有直接获取DefaultView的方法(DefaultViewId
上的List
或GetByUrl(string)
方法上缺少ViewCollection
属性。
对我来说,唯一的解决方案是遍历List.Views
集合并检查每个DefaultView
上的View
属性。哪种......好吧,效率低......
我错过了什么吗?有人看到一些直言不讳吗? 谢谢您的想法。
答案 0 :(得分: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
答案 1 :(得分:0)
SPList.DefaultView
怎么样? SPList DefaultView成员是SPView对象(不是bool)