0

我创建了 2 个连接的 webparts(提供者/消费者)。我现在想将 Provider 插入到我的母版页中,并将 Consumer 插入到页面上的 webpart 区域中。我发现的每个示例都在谈论通过 UI Webpart 属性区域连接它们。但是由于 1 将在母版页上,而另一个将添加到区域中,因此我没有那么奢侈。有谁知道如何在 xml 属性中设置这些属性?

例如,我有这个自定义 webpart 作为提供者:

<TeamsiteDropdownlistWebPart:TeamsiteDropdownlistWebPart 
runat="server" 
XmlQuery="" 
Description="My Visual WebPart" 
SiteUrl="http://spdev01:25706" 
Title="TeamsiteDropdownlistWebPart" 
ListName="Teamsite List" 
AllowConnect="true"
__MarkupType="vsattributemarkup" 
__WebPartId="{e4e8cd86-5b32-46bc-a8dc-341c06354787}" 
WebPart="true" 
__designer:IsClosed="false" id="g_e4e8cd86_5b32_46bc_a8dc_341c06354787">
</TeamsiteDropdownlistWebPart:TeamsiteDropdownlistWebPart>

我不知道除此之外该怎么做。

先感谢您!

4

1 回答 1

0

我们需要 SPLimitedWebPartManager 将 Web 部件与 ASP.NET 样式接口连接起来。步骤如下:

  1. 获取页面上的SPLimitedWebPartManager实例;
  2. 获取需要连接的提供者和消费者Web部件;
  3. 获取提供者和消费者 Web 部件的连接点;
  4. 使用 SPConnectWebParts 方法连接它们。如有必要,需要对兼容接口进行某些转换

你的代码:

SPWeb web = (SPWeb)properties.Feature.Parent;      
SPLimitedWebPartManager mgr = web.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared);      
System.Web.UI.WebControls.WebParts.WebPart provider= mgr.WebParts["TeamsiteDropdownlistWebPart"];   
System.Web.UI.WebControls.WebParts.WebPart consumer= mgr.WebParts["ConsumerWebPart"];  
ConsumerConnectionPoint addConsumerConnPoint = mgr.GetConsumerConnectionPoints(consumer)["AddressConsumer_ot"];   
ProviderConnectionPoint addProviderConnPoint = mgr.GetProviderConnectionPoints(provider)["AddressProvider_ot"];      
mgr.SPConnectWebParts(provider, addProviderConnPoint, consumer, addConsumerConnPoint);

这来自http://www.dhirendrayadav.com/2010/06/connecting-web-parts-programmatically.html,似乎是共识。不幸的是,我没有可以测试的香草环境,

于 2012-09-26T00:39:30.240 回答