WebPartManager.ConnectWebParts メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
WebPart ゾーン内に存在する 2 つの WebPartZoneBase コントロール (または、接続を構成できるその他のサーバー コントロール) の間に接続を作成します。
オーバーロード
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) |
コントロールへの参照とその指定された WebPart オブジェクトだけを使用して、2 つの GenericWebPart コントロールまたは ConnectionPoint コントロールの間に接続を作成します。 |
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) |
コントロールへの参照、指定された WebPart オブジェクト、および GenericWebPart オブジェクトを使用して、2 つの ConnectionPoint コントロールまたは WebPartTransformer コントロール間の接続を作成します。 |
注釈
メソッドは ConnectWebParts 、接続可能な任意の 2 つの WebPart コントロール間の接続を形成します。 このメソッドを呼び出して接続を作成する前に、条件付きチェックで メソッドを CanConnectWebParts 呼び出して、コントロールが接続を形成するための要件を満たしていることを確認することもできます。
注意
また、コントロールではない WebPart 2 つのサーバー コントロール間に接続を作成することもできます。 一般に、2 つのコントロールは、必要なメンバーを追加できるように、カスタム サーバー コントロール (または既存の ASP.NET サーバー コントロールを WebControl 継承するコントロールなど) である必要があります。 コントロールは、次に示す要件を満たす必要もあります。
2 つのコントロール間の任意の種類の接続シナリオは、接続できるようにするために次の要件を満たす必要があります。
各コントロールはゾーンに WebPartZoneBase 存在します (同じゾーンである必要はありません)。
Web パーツ コントロール セットに実装されているように、接続内のプロバイダー コントロールは、プロバイダーへのコールバックとして機能するパブリック メソッドとしてインターフェイスを実装し、プロバイダー接続ポイントとして識別するためのメタデータ属性をメソッドに持ちます
ConnectionProvider
。 プロバイダー接続ポイントを GetProviderConnectionPoints 取得するメソッドは仮想であるため、派生 WebPartManager コントロールは必ずしも同じメタデータ属性を使用する必要はありません。Web パーツ コントロール セットに実装されているように、接続内のコンシューマー コントロールには、プロバイダーのコールバック メソッドで公開されているインターフェイスへの参照を取得できる特別なメソッドもあります。コンシューマーには
ConnectionConsumer
、コンシューマー接続ポイントとして識別するメタデータ属性がメソッドに含まれています。 コンシューマー接続ポイントを GetConsumerConnectionPoints 取得するメソッドは仮想であるため、派生 WebPartManager コントロールは必ずしも同じメタデータ属性を使用する必要はありません。コールバック メソッドは、コンシューマーがプロバイダーのコールバック メソッドで提供されるインターフェイスの種類を使用できる (つまり、コンシューマーとプロバイダーが直接データを共有できる) か、開発者が オブジェクトを使用 WebPartTransformer してプロバイダーのデータをコンシューマーが使用できる形式に変換する必要があります。
重要
トランスフォーマーが必要ない場合は、 メソッドのオーバーロードを使用します ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) 。 トランスフォーマーが必要な場合は、 メソッドのオーバーロードを使用します ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) 。
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)
コントロールへの参照とその指定された WebPart オブジェクトだけを使用して、2 つの GenericWebPart コントロールまたは ConnectionPoint コントロールの間に接続を作成します。
public:
System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint);
public System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint);
member this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint) As WebPartConnection
パラメーター
- providerConnectionPoint
- ProviderConnectionPoint
接続のコールバック メソッドとして機能するメソッド。 Web パーツ コントロール セットに実装するときに、provider
のパブリック メソッドを ConnectionProvider
メタデータ属性でマークします。
- consumerConnectionPoint
- ConsumerConnectionPoint
providerConnectionPoint
に接続し、接続のデータを受け取るメソッド。 Web パーツ コントロール セットに実装するときに、consumer
のパブリック メソッドを ConnectionConsumer
メタデータ属性でマークします。
戻り値
接続に必要なプロバイダーとコンシューマーに関するさまざまな情報が格納された WebPartConnection。
例外
動的接続の WebPartManager コントロールのコレクションが読み取り専用です。
例
次のコード例では、このメソッドを使用してプログラムで接続を作成する方法を示します。 この例を実行するために必要な完全なコードについては、クラスの概要の「例」セクションを WebPartManager 参照してください。 この例では、ページの表示モードを変更できるユーザー コントロールのソース コードと、2 つのカスタム WebPart コントロールのソース コードが必要になります。
2 つのコントロールをホストする Web ページのコードは次のとおりです。 ページでは、上部にある ディレクティブを使用 Register
して、ユーザー コントロールとカスタム コントロールを宣言します。 その後、カスタム コントロールは要素内で <asp:webpartzone>
宣言的に参照されます。 メソッドを処理するコードは、 Button1_Click
メソッドを使用してコントロール間の接続を ConnectWebParts 作成します。
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.CS.Controls"
Assembly="ConnectionSampleCS"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
ProviderConnectionPoint provPoint =
mgr.GetProviderConnectionPoints(zip1)["ZipCodeProvider"];
ConsumerConnectionPoint connPoint =
mgr.GetConsumerConnectionPoints(weather1)["ZipCodeConsumer"];
WebPartConnection conn1 = mgr.ConnectWebParts(zip1, provPoint,
weather1, connPoint);
}
protected void mgr_DisplayModeChanged(object sender,
WebPartDisplayModeEventArgs e)
{
if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode)
Button1.Visible = true;
else
Button1.Visible = false;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server"
OnDisplayModeChanged="mgr_DisplayModeChanged">
</asp:WebPartManager>
<uc1:DisplayModeMenuCS ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
</asp:ConnectionsZone>
<asp:Button ID="Button1" runat="server"
Text="Connect WebPart Controls"
OnClick="Button1_Click"
Visible="false" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="~/displaymodemenuvb.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.VB.Controls"
Assembly="ConnectionSampleVB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
Dim provPoint As ProviderConnectionPoint = _
mgr.GetProviderConnectionPoints(zip1)("ZipCodeProvider")
Dim connPoint As ConsumerConnectionPoint = _
mgr.GetConsumerConnectionPoints(weather1)("ZipCodeConsumer")
mgr.ConnectWebParts(zip1, provPoint, weather1, connPoint)
End Sub
Protected Sub mgr_DisplayModeChanged (ByVal sender as Object, _
ByVal e as WebPartDisplayModeEventArgs)
If mgr.DisplayMode is WebPartManager.ConnectDisplayMode Then
Button1.Visible = True
Else
Button1.Visible = False
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server"
OnDisplayModeChanged="mgr_DisplayModeChanged">
</asp:WebPartManager>
<uc1:DisplayModeMenuVB ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1" runat="server"
Title="Zip Code Provider" />
<aspSample:WeatherWebPart ID="weather1" runat="server"
Title="Zip Code Consumer" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server">
</asp:ConnectionsZone>
<asp:Button ID="Button1" runat="server"
Text="Connect WebPart Controls"
OnClick="Button1_Click"
Visible="false" />
</div>
</form>
</body>
</html>
ブラウザーでページを読み込んだ後、[ WebPart コントロールの接続 ] ボタンをクリックして接続を形成します。 その後、テキスト ボックスにデータを入力し、[ 5 桁の郵便番号の入力 ] ボタンをクリックして、コントロールが接続されていること、および最初のコントロールに入力されたデータが 2 番目のコントロールで更新されることを示すことができます。
注釈
このオーバーロードは、接続ポイントがオブジェクトを使用せずに接続できる十分な互換性がある場合に、コントロールを WebPartTransformer 接続するために使用されます。 メソッドのこのオーバーロードが呼び出されると、メソッドの他のオーバーロードされたバージョンへの呼び出しが単に渡され、オブジェクトを必要とする WebPartTransformer パラメーターに渡null
されます。
2 つのコントロールをプログラムで接続しようとすると、条件付きチェックで メソッドを CanConnectWebParts 使用して、コントロールを直接接続できるかどうかを判断できます。
こちらもご覧ください
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- ASP.NET Web パーツ コントロール
適用対象
ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)
コントロールへの参照、指定された WebPart オブジェクト、および GenericWebPart オブジェクトを使用して、2 つの ConnectionPoint コントロールまたは WebPartTransformer コントロール間の接続を作成します。
public:
virtual System::Web::UI::WebControls::WebParts::WebPartConnection ^ ConnectWebParts(System::Web::UI::WebControls::WebParts::WebPart ^ provider, System::Web::UI::WebControls::WebParts::ProviderConnectionPoint ^ providerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPart ^ consumer, System::Web::UI::WebControls::WebParts::ConsumerConnectionPoint ^ consumerConnectionPoint, System::Web::UI::WebControls::WebParts::WebPartTransformer ^ transformer);
public virtual System.Web.UI.WebControls.WebParts.WebPartConnection ConnectWebParts (System.Web.UI.WebControls.WebParts.WebPart provider, System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPart consumer, System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint, System.Web.UI.WebControls.WebParts.WebPartTransformer transformer);
abstract member ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
override this.ConnectWebParts : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ProviderConnectionPoint * System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint * System.Web.UI.WebControls.WebParts.WebPartTransformer -> System.Web.UI.WebControls.WebParts.WebPartConnection
Public Overridable Function ConnectWebParts (provider As WebPart, providerConnectionPoint As ProviderConnectionPoint, consumer As WebPart, consumerConnectionPoint As ConsumerConnectionPoint, transformer As WebPartTransformer) As WebPartConnection
パラメーター
- providerConnectionPoint
- ProviderConnectionPoint
ConnectionProvider
メタデータ属性でマークされ、接続のコールバック メソッドとして機能する、provider
のパブリック メソッド。
- consumerConnectionPoint
- ConsumerConnectionPoint
ConnectionConsumer
メタデータ属性でマークされ、consumer
と接続して接続のデータを受け取る、providerConnectionPoint
のパブリック メソッド。
- transformer
- WebPartTransformer
provider
のデータを consumer
が処理できる形式に変換することにより、2 つのコントロールを接続できるようにする WebPartTransformer。
戻り値
接続に必要なプロバイダー、コンシューマー、およびトランスフォーマーに関する情報が格納された WebPartConnection。
例外
接続が既に PreRender でアクティブになっています。
注釈
このオーバーロードは、接続ポイントに互換性がない場合にコントロールを接続するために使用されます。 非互換性は、接続ポイントとして とは異なるインターフェイスprovider
を実装する場合consumer
に発生します。 トランスフォーマーは、データを によって理解できる型に consumer
変換します。
こちらもご覧ください
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- ASP.NET Web パーツ コントロール
適用対象
.NET