0

2 つの接続された Web パーツ (プロバイダー/コンシューマー) を作成しました。プロバイダーをマスターページに挿入し、コンシューマーをページの Web パーツ ゾーンに挿入したいと考えています。私が見つけたすべての例は、UI Web パーツのプロパティ領域を介してそれらを接続することについて話しています。しかし、1 つはマスターページに、もう 1 つはゾーンに追加されるため、その余裕はありません。xml プロパティでこれらのプロパティを設定する方法を知っている人はいますか?

たとえば、次のカスタム Web パーツをプロバイダーとして使用しています。

<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

Web パーツを ASP.NET スタイル インターフェイスに接続するには、SPLimitedWebPartManager が必要です。この手順は次のとおりです。

  1. ページ上の SPLimitedWebPartManager インスタンスを取得します。
  2. プロバイダーとコンシューマーの Web パーツを取得して接続する必要があります。
  3. プロバイダー Web パーツとコンシューマー 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 に答える