WebPartManager.GetProviderConnectionPoints メソッド
アセンブリ: System.Web (system.web.dll 内)

Public Overridable Function GetProviderConnectionPoints ( _ webPart As WebPart _ ) As ProviderConnectionPointCollection
Dim instance As WebPartManager Dim webPart As WebPart Dim returnValue As ProviderConnectionPointCollection returnValue = instance.GetProviderConnectionPoints(webPart)
public function GetProviderConnectionPoints ( webPart : WebPart ) : ProviderConnectionPointCollection
戻り値
プロバイダのすべてのコネクション ポイントが格納された ProviderConnectionPointCollection。


Web パーツ接続では常に、データのプロバイダとして動作するコントロールと、データのコンシューマとして動作するコントロールの 2 つのコントロールだけが関係します。それぞれのコントロールが、コネクション ポイントとして定義された 1 つ以上のメソッドを持っている必要があります。プロバイダ コントロールの場合、そのコネクション ポイントは ProviderConnectionPoint オブジェクトです。
接続を確立できるようにするには、プロバイダが少なくとも 1 つのコネクション ポイントを持つ必要があります。GetProviderConnectionPoints メソッドは、プロバイダ コントロールをチェックして、すべてのコネクション ポイントを含んだコレクションを取得します。Web パーツ接続の構成では、プロバイダ コネクション ポイントの取得は必須の手順です。

GetProviderConnectionPoints メソッドを使用する方法を次のコード例に示します。
-
接続できる 2 つのカスタム WebPart コントロール、および <asp:webpartmanager> 要素が含まれた Web ページ。
-
2 つのカスタム WebPart コントロールおよび 1 つのカスタム インターフェイスが含まれたソース コード ファイル。
コード例の最初の部分は、表示モードを変更するユーザー コントロールです。このユーザー コントロールのソース コードは、WebPartManager クラスの概要の「例」から取得できます。表示モードの詳細およびユーザー コントロールの動作方法の詳細については、「チュートリアル : Web パーツ ページでの表示モードの変更」を参照してください。
Web ページの宣言マークアップには、ユーザー コントロールとカスタム コントロール両方の Register ディレクティブが含まれています。<asp:webpartmanager> 要素、カスタム コントロールを格納する <asp:webpartzone> 要素、および <asp:connectionszone> 要素があります。Page_Load メソッドで、コードは接続が既に存在しているかどうかをチェックし、存在していない場合は、プロバイダ、コンシューマ、およびそのそれぞれのコネクション ポイントを定義し、新しい接続を StaticConnections プロパティで参照される静的接続のセットに追加します。GetProviderConnectionPoints メソッドを使用して取得した ProviderConnectionPointCollection オブジェクトは CanConnectWebParts メソッドに渡され、2 つのコントロールの間に接続を作成できるかどうかを判断します。
<%@ Page Language="vb" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="DisplayModeMenuVB.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="ConnectionSampleVB"%> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) ' Define provider, consumer, and connection points. Dim provider As WebPart = mgr.WebParts("zip1") Dim provConnPoint As ProviderConnectionPoint = _ mgr.GetProviderConnectionPoints(provider)("ZipCodeProvider") Dim consumer As WebPart = mgr.WebParts("weather1") Dim consConnPoint As ConsumerConnectionPoint = _ mgr.GetConsumerConnectionPoints(consumer)("ZipCodeConsumer") ' Check whether the connection already exists. If mgr.CanConnectWebParts(provider, provConnPoint, _ consumer, consConnPoint) Then ' Create a new static connection. Dim conn As New WebPartConnection() conn.ID = "staticConn1" conn.ConsumerID = "weather1" conn.ConsumerConnectionPointID = "ZipCodeConsumer" conn.ProviderID = "zip1" conn.ProviderConnectionPointID = "ZipCodeProvider" mgr.StaticConnections.Add(conn) End If End Sub </script> <html > <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <!-- Reference the WebPartManager control. --> <asp:WebPartManager ID="mgr" runat="server" /> <div> <uc1:DisplayModeMenuVB ID="displaymode1" runat="server" /> <!-- Reference consumer and provider controls in a zone. --> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <aspSample:ZipCodeWebPart ID="zip1" runat="server" Title="Zip Code Control"/> <aspSample:WeatherWebPart ID="weather1" runat="server" Title="Weather Control" /> </ZoneTemplate> </asp:WebPartZone> <hr /> <!-- Add a ConnectionsZone so users can connect controls. --> <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="DisplayModeMenuCS.ascx" %> <%@ register tagprefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="ConnectionSampleCS"%> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { // Define provider, consumer, and connection points. WebPart provider = mgr.WebParts["zip1"]; ProviderConnectionPoint provConnPoint = mgr.GetProviderConnectionPoints(provider)["ZipCodeProvider"]; WebPart consumer = mgr.WebParts["weather1"]; ConsumerConnectionPoint consConnPoint = mgr.GetConsumerConnectionPoints(consumer)["ZipCodeConsumer"]; // Check whether the connection already exists. if (mgr.CanConnectWebParts(provider, provConnPoint, consumer, consConnPoint)) { // Create a new static connection. WebPartConnection conn = new WebPartConnection(); conn.ID = "staticConn1"; conn.ConsumerID = "weather1"; conn.ConsumerConnectionPointID = "ZipCodeConsumer"; conn.ProviderID = "zip1"; conn.ProviderConnectionPointID = "ZipCodeProvider"; mgr.StaticConnections.Add(conn); } } </script> <html > <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <!-- Reference the WebPartManager control. --> <asp:WebPartManager ID="mgr" runat="server" /> <div> <uc1:DisplayModeMenuCS ID="displaymode1" runat="server" /> <!-- Reference consumer and provider controls in a zone. --> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <aspSample:ZipCodeWebPart ID="zip1" runat="server" Title="Zip Code Control"/> <aspSample:WeatherWebPart ID="weather1" runat="server" Title="Weather Control" /> </ZoneTemplate> </asp:WebPartZone> <hr /> <!-- Add a ConnectionsZone so users can connect controls. --> <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" /> </div> </form> </body> </html>
コード例の 3 番目の部分は、コントロールのソース コードです。このコード自体、およびコードをコンパイルする手順の説明は、WebPartManager クラスの概要の「例」から取得できます。
ブラウザに Web ページを読み込んだ後、[Display Mode] ドロップダウン リスト コントロールをクリックし、[接続] を選択してページを接続モードに切り替えます。接続モードは、<asp:connectionszone> 要素を使用して、コントロールの間に接続を作成できるようにします。接続モードで、[ZIP Code] コントロールのタイトル バーにある下向きの矢印をクリックしてその動詞メニューをアクティブにし、[接続] をクリックします。接続ユーザー インターフェイス (UI) が表示されたら、Page_Load メソッドに格納されているコードによって既に接続が作成されていることを確認します。後のブラウザ セッションでこのページに戻る場合、この静的接続は既に確立されているため、ページを読み込むたびに再作成する必要はありません。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WebPartManager.GetProviderConnectionPoints メソッドのページへのリンク