共用方式為


WebPartManager.ConnectWebParts 方法

定義

建立 WebPart 區域中兩個 WebPartZoneBase 控制項 (或能建立連接的其他伺服器控制項) 之間的連接。

多載

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

只使用控制項的參考及其指定的 WebPart 物件,建立兩個 GenericWebPart (或 ConnectionPoint) 控制項之間的連接。

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

使用控制項的參考、其指定的 WebPart 物件和 GenericWebPart 物件,建立兩個 ConnectionPoint (或 WebPartTransformer) 控制項之間的連接。

備註

方法 ConnectWebParts 會在任何兩 WebPart 個可連接的控件之間建立連接。 在呼叫這個方法以建立連接之前,您可能也會想要在條件式檢查中呼叫 CanConnectWebParts 方法,以確保控件符合形成連接的需求。

注意

您也可以在兩個不是 WebPart 控件的伺服器控制元件之間建立連線。 一般而言,這兩個控件必須是自定義伺服器控件 (,例如繼承自 WebControl 或現有 ASP.NET 伺服器控件的控件) ,以便您可以新增必要的成員。 控件也必須符合下列指定的需求。

兩個控件之間的任何類型的連線案例都必須符合下列需求,才能連線:

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint)

只使用控制項的參考及其指定的 WebPart 物件,建立兩個 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

參數

provider
WebPart

WebPart 控制項,其角色為提供資料給另一個連接的控制項。

providerConnectionPoint
ProviderConnectionPoint

方法,做為連接的回呼方法。 當 Web 組件控制集實作時,這是 provider 中標記著 ConnectionProvider 中繼資料屬性的公用方法。

consumer
WebPart

WebPart 控制項,其角色為從 provider 接收資料,然後處理或顯示此資料。

consumerConnectionPoint
ConsumerConnectionPoint

providerConnectionPoint 連接的方法,以接收連接資料。 當 Web 組件控制集實作時,這是 consumer 中標記著 ConnectionConsumer 中繼資料屬性的公用方法。

傳回

WebPartConnection,包含連接所需之提供者和消費者的各種相關資訊。

例外狀況

WebPartManager 控制項的動態連接集合是唯讀。

範例

下列程式代碼範例示範如何使用這個方法來以程序設計方式建立連線。 如需執行範例所需的完整程式碼,請參閱類別概觀的 WebPartManager 範例一節。 在該範例中,您需要使用者控件的原始程式碼,這可讓您變更頁面上的顯示模式,以及兩個自定義 WebPart 控件的原始程式碼。

裝載兩個控件的網頁程序代碼如下。 頁面使用 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 位數的郵遞區號 ] 按鈕來示範控制項已連線,而第一個控制項中輸入的數據會在第二個控件中更新。

備註

此多載用來連接控制項時,其連接點與連接點完全相容,而不需要使用 物件即可連接 WebPartTransformer 。 呼叫此方法的這個多載時,只會將呼叫傳遞至方法的其他多載版本,並針對需要 WebPartTransformer 物件的參數傳遞 null

當您嘗試以程式設計方式連接兩個控件時,可以使用 CanConnectWebParts 條件式檢查中的 方法來判斷控件是否可以直接連接。

另請參閱

適用於

ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer)

使用控制項的參考、其指定的 WebPart 物件和 GenericWebPart 物件,建立兩個 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

參數

provider
WebPart

WebPart,其角色為提供資料給另一個連接的控制項。

providerConnectionPoint
ProviderConnectionPoint

provider 中的公用方法,這個方法標記著 ConnectionProvider 中繼資料屬性,並做為連接的回呼方法。

consumer
WebPart

WebPart,其角色為從 providertransformer 接收資料,然後處理或顯示此資料。

consumerConnectionPoint
ConsumerConnectionPoint

consumer 中的公用方法,這個方法標記著 ConnectionConsumer 中繼資料屬性,並與 providerConnectionPoint 連接以接收連接資料。

transformer
WebPartTransformer

WebPartTransformer,藉著將來自 provider 的資料轉換成 consumer 可以處理的格式,允許兩個控制項之間的連接。

傳回

WebPartConnection,包含連接所需之提供者、消費者和轉換程式的相關資訊。

例外狀況

連接已在 PreRender 中啟動。

備註

當控件的連接點不相容時,會使用此多載來連接控件。 當實作不同於其連接點的介面providerconsumer,就會發生不相容的情況。 轉換程式會將數據轉換成 可由 瞭解 consumer的類型。

另請參閱

適用於