sharepoint-2010 - Sharepoint 2010 分类法未正确过滤

标签 sharepoint-2010

我在 Sharepoint 2010 中有一个奇怪的分类法过滤,但我能够在所有 3 个服务器上复制它。

以下是该场景的运行方式:

  • 拥有一个包含许多子节点(大约 4500 个)的完全填充的 termSet。
  • 添加 1 个自定义列表,其中包含 2 个字段(Title 和一个 Managed Metadata 字段,此链接到 termSet) - 所有这些都使用 GUI 完成。
  • 手动添加一个列表项(或几个),然后选择一个术语来填充元数据字段(树结构中的深度约为向下 4 个节点)
  • 根据此术语测试列表上的过滤 - 就像一个魅力。

  • 现在,我运行我的导入作业,将项目添加到另一个列表。第二个列表还有一个指向 termSet 的托管元数据字段。
  • 添加1000个项目,没问题。像魅力一样工作
  • 再加 1000 ,没问题。
  • 大约 2000 和 4500 个项目出了问题,因为运行完成后,我现在处于以下情况:

  • 列表 1 过滤不起作用。列表 2 过滤,绝对行不通。

    究竟发生了什么。我选择了一个顶级术语,它应该包括所有子项目。在大量插入使用术语集中的术语的列表项之前,它完美地做到了这一点。插入后,当我选择顶级术语时,我得到一个空集,并且没有包含后代的按钮。

    我正在调查这个隐藏列表,正如我所注意到的,它与过滤有很大关系。过滤主要检查这一点(尚不确定如何/为什么)。

    其他人有这个问题吗?唯一的文档来源是 Microsoft Sharepoint Evangelical Blogs (Marketing),没有详细解释为什么这不起作用。

    请协助。

    最佳答案

    规则 1:在处理 Sharepoint 时,永远不要相信它可以工作。

    if (fRecursive && (numArray.Length > 300))
        {
            int[] numArray2 = numArray;
            object[] data = new object[] { termSetId.ToString(), termId.ToString(), numArray2.Length.ToString(CultureInfo.InvariantCulture) };
            ULS.SendTraceTag(0x66367766, ULSCat.msoulscat_DLC_DM, ULSTraceLevel.Medium, "Disable recursive term clause: Too many descendent IDs for term. Termset[{0}]Term[{1}] Descendent ID count[{2}]", data);
            numArray = TaxonomyField.GetWssIdsOfTerm(SPContext.Current.Site, termStoreId, termSetId, termId, false, 500);
            MetadataNavigationContext current = MetadataNavigationContext.Current;
            if (current != null)
            {
                current.ForceTreeDescendentsOff();
            }
        }
    (numArray.Length > 300)
    

    从 Sharepoint.Taxonomy 反射(reflect),注意 current.ForceTreeDescendentsOff();

    因此,如果您遇到可能需要从分类法过滤器返回 300 多条记录的情况,它似乎无法做到这一点。非常适合企业解决方案。

    关于sharepoint-2010 - Sharepoint 2010 分类法未正确过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961019/

    相关文章:

    SharePoint 2010 REST API JQUery 插入、更新、删除

    c# - 如何通过 Silverlight 客户端对象模型从 SharePoint 检索列表项的附件,或至少检索附件的路径?

    c# - 如何访问 SharePoint 映射文件夹下的 XML 文件以创建 Xml 阅读器?

    c# - 如何在 CAML 查询中进行双 orderby?

    c# - 用于删除站点操作菜单项的 Sharepoint 自定义操作

    javascript - 是否有可用于 SharePoint 2010 基于 JavaScript 的客户端对象模型的 API?

    SharePoint 2010 - RichImageField 未在显示模式下显示

    sharepoint - 什么是SharePoint中的服务器场?

    visual-studio-2010 - 将 SharePoint 2010 解决方案转换为 2013 和 Visual Studio 2012

    javascript - 如何解析日期以便不包含时区?