从客户端过滤外部列表字段

时间:2012-04-05 01:02:33

标签: list sharepoint bcs client-object-model

背景:

我们正在开发一个通过客户端对象模型访问SharePoint的自定义应用程序,此应用程序需要使用OM(对象模型)访问SharePoint中定义的ECT(外部内容类型)列表。此应用程序是一个应该可用于大多数SharePoint安装和配置的产品,并且不具备外部列表的先验知识。

如果没有为ECT设置过滤器,SharePoint将返回列表中的所有可用项目(假设数字低于阈值)。在我们为此ECT定义过滤器的那一刻,SharePoint仅返回应用此过滤器后的项目(可能是来自SP的正确行为)。

问题:

我们需要能够根据用户在搜索框中输入的文本搜索此ECT列表(未过滤)。目前,在将值返回给调用对象时似乎无法更改SharePoint应用的过滤器。

即。我的ECT列表中有10个项目(1,2,3 ... 10)。每个项目有3列(ID,名称,描述)。为ECT列表设置过滤器后,SharePoint返回项目2,3和& 6当我向SharePoint询问项目列表时。

用户没有搜索匹配项目7的描述。如何搜索/过滤列表以返回与我的搜索查询匹配的项目?

我一直在试图解决这个问题,但似乎没有任何效果。我尝试设置CAML查询以及http://pholpar.wordpress.com/2011/02/09/how-to-query-external-lists-on-the-client-side-using-caml/http://msdn.microsoft.com/en-us/library/ff464384.aspx中定义的LoadQuery,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:1)

即使我有这个问题。让我告诉你,没有办法做到这一点。 即使在Server对象模型中,也有一个选项可以更改默认视图的过滤器,但是一旦应用过滤器,SPList将返回0个项目。 有趣的部分是你的代码运行&在SP UI中打开列表,可以看到实际修改后的列表。但同样不能在对象模型中查询。

看起来很奇怪。我想如果你在这个实例中修改SPList(基于ECT),那么你只能在下一个实例中得到结果(如下一页刷新......)