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 두 서버 컨트롤 간에 연결을 만들 수도 있습니다. 일반적으로 두 컨트롤은 필요한 멤버를 추가할 수 있도록 사용자 지정 서버 컨트롤(예: 또는 기존 ASP.NET 서버 컨트롤에서 WebControl 상속되는 컨트롤)이어야 합니다. 또한 컨트롤은 아래에 지정된 요구 사항을 충족해야 합니다.

두 컨트롤 간의 모든 유형의 연결 시나리오는 연결할 수 있도록 다음 요구 사항을 충족해야 합니다.

  • 각 컨트롤은 WebPartZoneBase 영역에 있습니다(동일한 영역일 필요는 없음).

  • 웹 파트 컨트롤 집합에서 구현된 대로 연결의 공급자 컨트롤은 공급자에 대한 콜백 역할을 하는 공용 메서드로 인터페이스를 구현하고 ConnectionProvider 메서드에 메타데이터 특성을 사용하여 공급자 연결 지점으로 식별합니다. GetProviderConnectionPoints 공급자 연결 지점을 검색하는 메서드는 가상이므로 파생된 컨트롤이 WebPartManager 반드시 동일한 메타데이터 특성을 사용할 필요는 없습니다.

  • 웹 파트 컨트롤 집합에서 구현된 대로 연결의 소비자 컨트롤에는 공급자의 콜백 메서드에 노출되는 인터페이스에 대한 참조를 가져올 수 있는 특수 메서드도 있으며, 소비자는 ConnectionConsumer 메서드에 메타데이터 특성을 사용하여 이를 소비자 연결 지점으로 식별합니다. GetConsumerConnectionPoints 소비자 연결 지점을 검색하는 메서드는 가상이므로 파생된 컨트롤이 WebPartManager 반드시 동일한 메타데이터 특성을 사용할 필요는 없습니다.

  • 콜백 메서드는 소비자가 공급자의 콜백 메서드에 제공된 인터페이스 형식(소비자와 공급자가 직접 데이터를 공유할 수 있음)을 사용할 수 있거나 개발자가 개체를 사용하여 WebPartTransformer 공급자의 데이터를 소비자가 사용할 수 있는 형식으로 변환해야 하므로 호환되어야 합니다.

    중요

    변환기가 필요하지 않은 경우 메서드 오버로드를 ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) 사용합니다. 변환기가 필요한 경우 메서드 오버로드를 ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint, WebPartTransformer) 사용합니다.

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

연결에서 콜백 메서드로 사용되는 메서드입니다. 웹 파트 컨트롤 집합에서 구현될 때 이 메서드는 provider에서 ConnectionProvider 메타데이터 특성으로 표시되는 공용 메서드입니다.

consumer
WebPart

provider로부터 데이터를 받아 이를 처리하거나 표시하는 역할을 하는 WebPart 컨트롤입니다.

consumerConnectionPoint
ConsumerConnectionPoint

providerConnectionPoint와 연결하여 연결에 대한 데이터를 받는 메서드입니다. 웹 파트 컨트롤 집합에서 구현될 때 이 메서드는 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 연결하는 데 사용됩니다. 메서드의 이 오버로드가 호출되면 메서드의 다른 오버로드된 버전에 대한 호출을 전달하고 개체가 필요한 매개 변수를 전달 null 합니다 WebPartTransformer .

두 컨트롤을 프로그래밍 방식으로 연결하려고 하면 조건부 검사 메서드를 사용하여 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

provider 또는 transformer로부터 데이터를 받아 이를 처리하거나 표시하는 역할을 하는 WebPart입니다.

consumerConnectionPoint
ConsumerConnectionPoint

consumer의 공용 메서드로, ConnectionConsumer 메타데이터 특성으로 표시되며 providerConnectionPoint와 연결되어 연결의 데이터를 받습니다.

transformer
WebPartTransformer

provider의 데이터를 consumer가 처리할 수 있는 형식으로 변환하여 두 컨트롤 간을 연결할 수 있게 해 주는 WebPartTransformer입니다.

반환

연결에 필요한 공급자, 소비자 및 변환기에 대한 다양한 정보가 들어 있는 WebPartConnection입니다.

예외

연결이 이미 PreRender에서 활성화된 경우

설명

이 오버로드는 연결 지점이 호환되지 않는 경우 컨트롤을 연결하는 데 사용됩니다. 비호환성은 연결 지점과 다른 인터페이스 provider 를 구현할 때 consumer 발생합니다. 변환기는 데이터를 에서 이해할 consumer수 있는 형식으로 변환합니다.

추가 정보

적용 대상