在母版页中嵌入已连接的WebParts

时间:2012-09-25 22:48:22

标签: sharepoint-2010

我创建了2个连接的webpart(提供者/消费者)。我现在想要将提供者插入到我的母版页中,并将消费者插入到页面上的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>

我不确定除此之外该怎么做。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

    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,似乎是共识。不幸的是,我没有一个香草环境可供测试,