如何以编程方式过滤外部列表?

时间:2013-01-17 14:03:31

标签: .net list filter external connectivity

我使用.NET Assembly Connector开发了自定义业务数据连接解决方​​案。它有Finder方法的比较类型过滤器。

我现在可以创建外部列表并使用编辑视图中的数据源过滤器 - 它可以工作。 我还可以添加Business Data Connectivity过滤器Web部件,将其连接到外部列表 - 它可以工作。

我的问题:如何以编程方式过滤外部列表?

我不想在编辑列表视图或BDC过滤器Web部件的“选择外部项目”对话框中输入值。 我希望在页面加载时计算值,例如,value = web site name,

换句话说,是否可以自行实施Business Data Connectivity过滤器Web部件?它应该工作一次,我不想更改过滤值。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

以下是我的发现。

首先,我按照http://blog.voltje.be/2010/07/23/deploying-an-external-list-using-visual-studio-2010/comment-page-1/

中的描述,通过从wsp包导入List为我的外部列表准备了Elements.xml和Schema.xml

希望Schema.xml确实包含所需的过滤器值,如:

<View DisplayName="My View name" ...>
   <XslLink>main.xsl</XslLink>
   <Method Name="ReadList">
   <Filter Name="My Comparison filter" Value="My Value" />
   </Method>
   <Query>

.....

然后我尝试了两种方法:

1)使用SPView.SetViewXml (如http://sharepointfordeveloper.blogspot.ru/2011/11/sharepoint-2010-update-default-list.html

中所述

它似乎不适用于外部列表:(( 我的意思是在导入带有视图的xml时,未设置过滤器的值,原因不明。

2)使用基于上述Elements.xml和Schema.xml的List Instance。 它运行得很好,新的列表是使用过滤器和值创建的。 第一种方式对我来说会好得多......