我使用.NET Assembly Connector开发了自定义业务数据连接解决方案。它有Finder方法的比较类型过滤器。
我现在可以创建外部列表并使用编辑视图中的数据源过滤器 - 它可以工作。 我还可以添加Business Data Connectivity过滤器Web部件,将其连接到外部列表 - 它可以工作。
我的问题:如何以编程方式过滤外部列表?
我不想在编辑列表视图或BDC过滤器Web部件的“选择外部项目”对话框中输入值。 我希望在页面加载时计算值,例如,value = web site name,
换句话说,是否可以自行实施Business Data Connectivity过滤器Web部件?它应该工作一次,我不想更改过滤值。
有什么想法吗?
答案 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。 它运行得很好,新的列表是使用过滤器和值创建的。 第一种方式对我来说会好得多......