次の方法で共有


WebPartManager.GetProviderConnectionPoints(WebPart) メソッド

定義

Web パーツ接続内でプロバイダーとして動作するサーバー コントロールから、コネクション ポイントとして機能できる ProviderConnectionPoint オブジェクトのコレクションを取得します。

public:
 virtual System::Web::UI::WebControls::WebParts::ProviderConnectionPointCollection ^ GetProviderConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection GetProviderConnectionPoints (System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
override this.GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
Public Overridable Function GetProviderConnectionPoints (webPart As WebPart) As ProviderConnectionPointCollection

パラメーター

webPart
WebPart

接続でプロバイダーとして動作するサーバー コントロール。

戻り値

プロバイダーのすべてのコネクション ポイントが格納された ProviderConnectionPointCollection

例外

webPartnullです。

次のコード例は、GetProviderConnectionPoints メソッドの使用方法を示します。

この例には、次の 4 つの部分があります。

  • Web パーツ ページの表示モードを変更できるユーザー コントロール。

  • 接続できる 2 つのカスタム WebPart コントロールと <asp:webpartmanager> 要素を含む Web ページ。

  • 2 つのカスタム コントロールとカスタム WebPart インターフェイスを含むソース コード ファイル。

  • ブラウザーでのこの例の動作の説明。

コード例の最初の部分は、表示モードを変更するためのユーザー コントロールです。 ユーザー コントロールのソース コードは、クラスの概要の [例] セクション WebPartManager から取得できます。 表示モードとユーザー コントロールの動作の詳細については、「 チュートリアル: Web パーツ ページでの表示モードの変更」を参照してください。

Web ページの宣言型マークアップには、 Register ユーザー コントロールとカスタム コントロールの両方のディレクティブが含まれています。 <asp:webpartmanager>要素、カスタム コントロールを<asp:webpartzone>格納する要素、および 要素があります<asp:connectionszone>。 メソッドでは Page_Load 、接続が既に存在するかどうかを確認し、存在しない場合はプロバイダー、コンシューマー、およびそれぞれの接続ポイントを定義し、 プロパティによって StaticConnections 参照される静的接続のセットに新しい接続を追加することに注意してください。 メソッドを ProviderConnectionPointCollection 使用 GetProviderConnectionPoints して取得された オブジェクトは、 メソッドに CanConnectWebParts 渡され、2 つのコントロール間の接続を作成できるかどうかを判断します。

<%@ 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 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 xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</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>
<%@ 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 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 xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</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>

この例の 3 番目の部分は、 コントロールのソース コードです。 このコードとコンパイル手順は、クラスの概要の「例」セクション WebPartManager から取得できます。

ブラウザーに Web ページを読み込んだ後、[ 表示モード ] ドロップダウン リスト コントロールをクリックし、[ 接続 ] を選択してページを接続モードに切り替えます。 接続モードでは、 要素を <asp:connectionszone> 使用して、コントロール間の接続を作成できます。 接続モードで、 ZIP コード コントロールのタイトル バーの下向き矢印をクリックして動詞メニューをアクティブ化し、[ 接続] をクリックします。 接続ユーザー インターフェイス (UI) が表示されたら、 メソッドに含まれるコードによって接続が既に作成されていることに Page_Load 注意してください。 後のブラウザー セッションでこのページに戻った場合、この静的接続は既に確立されているため、ページが読み込まれるたびに再作成する必要はありません。

注釈

Web パーツ接続には常に 2 つのコントロールが含まれます。1 つはデータのプロバイダーとして機能し、もう 1 つはデータのコンシューマーとして機能します。 各コントロールには、接続ポイントとして定義されている 1 つ以上のメソッドが必要です。 プロバイダー コントロールの場合、その接続ポイントは オブジェクトです ProviderConnectionPoint

接続を確立するには、プロバイダーに常に少なくとも 1 つの接続ポイントが必要です。 メソッドは GetProviderConnectionPoints プロバイダー コントロールをチェックし、すべての接続ポイントのコレクションを取得します。 プロバイダー接続ポイントの取得は、Web パーツ接続を形成する際に必要な手順です。

適用対象

こちらもご覧ください