从阈值列表中的特定视图中获取项目(在线共享点)

时间:2017-03-03 10:47:41

标签: c# sharepoint sharepoint-2013 sharepoint-online

我在sharepoint online上有一个包含8000个项目的大型列表。 (阈值是5000)

我为此列表创建了自定义视图。 "所有项目"是第一个视图,这里是从id = 1到id = 4000和第二个视图"所有项目2"哪里有另一个id(4001 - 8000)。

我创建此视图,我可以在这个大型列表中搜索,但我无法找到如何仅在第一个视图中搜索。

当我在所有列表中运行caml查询时,我得到以下异常:

  

禁止尝试操作,因为它超出了列表视图   管理员强制执行的阈值。

我如何管理我的清单?感谢。

void FindTest(ClientContext context, string email)
    {
        using (context)
        {
            try
            {
                Web web = context.Web;

                Microsoft.SharePoint.Client.List list = context.Web.Lists.GetByTitle("BigDataList");
                context.Load(list);
                context.ExecuteQuery();
                View view = list.Views.GetByTitle("All Items");

                context.Load(view);
                context.ExecuteQuery();
                CamlQuery query = new CamlQuery();
                query.ViewXml = @"<View>  
         <Query> 
         <Where><Eq><FieldRef Name='Title' /><Value Type='Text'>" + email + "</Value></Eq></Where></Query><ViewFields><FieldRef Name='Title' /></ViewFields></View>";


                Microsoft.SharePoint.Client.ListItemCollection items = list.GetItems(query);
                context.Load(items);
                context.ExecuteQuery();

                Console.WriteLine(view.Title);
                Console.WriteLine(items.Count);


            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }

        }

    }

1 个答案:

答案 0 :(得分:1)

请尝试索引您在CAML查询中使用的列(此处为标题)。 转到列表设置 在“列”下,单击“索引列”。 单击“创建新索引”。 在“主要”列下,选择要编制索引的列,然后单击“创建”。