2012-04-05 70 views
0

背景:过滤外部列表场

我们

正在开发它通过客户端对象模型访问SharePoint和这个应用程序需要访问使用OM在SharePoint ECT定义(外部内容类型)列表的定制应用(对象模型)。此应用程序是一种适用于大多数SharePoint安装和配置的产品,并且无法事先了解外部列表。

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

问题:

我们需要能够基于通过在搜索框中输入用户输入的文本搜索该ECT清单(非过滤)。目前似乎没有办法在将值返回给调用对象时更改SharePoint应用的筛选器。

I.e.我的ECT列表中有10个项目(1,2,3 ... 10)。每个项目有3列(ID,名称,说明)。为ECT列表设置筛选器后,当我向SharePoint请求项目列表时,SharePoint会返回项目2,3,6。

否用户搜索匹配项目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

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

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