我在 Sharepoint 2010 中有一个奇怪的分类法过滤,但我能够在所有 3 个服务器上复制它。
以下是该场景的运行方式:
现在,我运行我的导入作业,将项目添加到另一个列表。第二个列表还有一个指向 termSet 的托管元数据字段。
列表 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/