Поделиться через


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 серверными элементами управления), чтобы можно было добавить необходимые элементы. Элементы управления также должны соответствовать требованиям, указанным ниже.

Любой тип сценария подключения между двумя элементами управления должен соответствовать следующим требованиям, чтобы иметь возможность подключения:

  • Каждый элемент управления находится в 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

Элемент управления WebPart, выполняющий функцию получения данных provider с последующей их обработкой и отображением.

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>

После загрузки страницы в браузере нажмите кнопку Подключить элементы управления веб-части , чтобы сформировать подключение. Затем можно ввести некоторые данные в текстовое поле и нажать кнопку Ввести 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

Элемент управления WebPart, выполняющий функцию получения данных от provider или transformer с последующей их обработкой и отображением.

consumerConnectionPoint
ConsumerConnectionPoint

Открытый метод в consumer, который помечен атрибутом метаданных ConnectionConsumer и создает подключение с providerConnectionPoint для получения данных для подключения.

transformer
WebPartTransformer

Преобразователь WebPartTransformer, который позволяет создать подключение между двумя элементами управления посредством преобразования данных поставщика provider в формат, который может быть обработан получателем consumer.

Возвращаемое значение

Подключение WebPartConnection, которое содержит различные необходимые для подключения сведения о поставщике, получателе и преобразователе.

Исключения

Подключения уже были активированы в событии PreRender.

Комментарии

Эта перегрузка используется для подключения элементов управления, если их точки подключения несовместимы. Несовместимость возникает, когда consumer реализует интерфейс, отличный от provider интерфейса в качестве точки подключения. Преобразователь преобразует данные в тип, который можно понять с помощью consumer.

См. также раздел

Применяется к