【问题标题】:Getting DefaultView through client object model通过客户端对象模型获取 DefaultView
【发布时间】:2023-04-05 07:27:01
【问题描述】:

我想通过客户端对象模型(我正在使用 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 的方法(List 上缺少DefaultViewId 属性或ViewCollection 上的GetByUrl(string) 方法)。

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

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

【问题讨论】:

  • 你在找什么?默认视图的名称让你可以显示吗?我相信默认情况下它会检索用户定义的默认视图的字段。
  • AFAIK List.Fields 包含所有字段。 View 类具有属性 ViewFields,它应该只包含所有字段的子集。

标签: sharepoint sharepoint-clientobject


【解决方案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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我说的是 Client 对象模型。不是 Sharepoint 的标准对象模型。我正在使用 Silverlight。 (为了更清楚,我在帖子中添加了一些提及)
    • 知道了,尚未使用客户端对象模型,根据 MSDN 文档,我得出的结论与您的相同,没有用于实例化 ViewGetByUrl 方法,也没有用于实例化 View 的方法从List 获取DefaultView 而不迭代Views
    • 感谢您重新检查文档。我把这个问题留着,以防万一有人想出什么……
    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    相关资源
    最近更新 更多