WebPartManager.GetProviderConnectionPoints(WebPart) Метод

Определение

Получает коллекцию объектов 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

Коллекция ProviderConnectionPointCollection, которая содержит все точки подключения в поставщике.

Исключения

webPart имеет значение null.

Примеры

В следующем примере кода показано, как использовать метод GetProviderConnectionPoints.

Пример состоит из четырех частей:

  • Пользовательский элемент управления, позволяющий изменять режимы отображения на странице веб-части.

  • Веб-страница, содержащая два настраиваемых WebPart элемента управления, которые можно подключить, и <asp:webpartmanager> элемент.

  • Файл исходного кода, содержащий два пользовательских WebPart элемента управления и пользовательский интерфейс.

  • Объяснение того, как работает пример в браузере.

Первая часть примера кода — это пользовательский элемент управления для изменения режимов отображения. Исходный код пользовательского элемента управления можно получить из раздела "Пример" в обзоре WebPartManager класса. Дополнительные сведения о режимах отображения и о том, как работает пользовательский элемент управления, см. в пошаговом руководстве: изменение режимов отображения на странице веб-части.

Декларативная разметка для веб-страницы содержит Register директивы для пользовательского элемента управления и пользовательских элементов управления. Существует <asp:webpartmanager> элемент, элемент, <asp:webpartzone> содержащий пользовательские элементы управления и <asp:connectionszone> элемент. Обратите внимание, что в методе Page_Load код проверяет, существует ли подключение и, если нет, определяет поставщика, потребителя и соответствующие точки подключения, а затем добавляет новое подключение к набору статических соединений, на которые ссылается StaticConnections свойство. Обратите внимание, что ProviderConnectionPointCollection объект, полученный с помощью GetProviderConnectionPoints метода, затем передается CanConnectWebParts методу, чтобы определить, можно ли создать соединение между двумя элементами управления.

<%@ 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>

Третья часть примера — исходный код для элементов управления. Этот код и инструкции по его компиляции можно получить из раздела Example в обзоре WebPartManager класса.

После загрузки веб-страницы в браузере щелкните раскрывающийся список режима отображения и выберите Подключение, чтобы переключить страницу в режим подключения. Подключение режим использует <asp:connectionszone> элемент для создания соединений между элементами управления. В режиме подключения щелкните стрелку вниз в строке заголовка элемента управления ZIP-кода, чтобы активировать меню глаголов, а затем щелкните Подключение. После появления пользовательского интерфейса подключения обратите внимание, что подключение уже создано кодом, содержащимся в методе Page_Load . Если вы вернелись на эту страницу в последующем сеансе браузера, это статическое подключение уже будет установлено и не потребуется повторно создаваться при каждой загрузке страницы.

Комментарии

Подключение веб-части всегда включает в себя ровно два элемента управления, один выступает в качестве поставщика данных, другой выступает в качестве потребителя данных. Каждый элемент управления должен иметь один или несколько методов, определенных как точки подключения. В случае элемента управления поставщиком его точки подключения являются объектами ProviderConnectionPoint .

Поставщик должен всегда иметь по крайней мере одну точку подключения, чтобы установить подключение. Метод GetProviderConnectionPoints проверяет элемент управления поставщиком и извлекает коллекцию всех его точек подключения. Получение точек подключения поставщика является необходимым шагом при формировании подключения веб-части.

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

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