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, которая содержит все точки подключения в поставщике.
Исключения
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>
Третья часть примера — исходный код для элементов управления. Этот код и инструкции по его компиляции можно получить в разделе WebPartManager Пример обзора класса.
Загрузив веб-страницу в браузере, щелкните раскрывающийся список Режим отображения и выберите Подключить , чтобы переключить страницу в режим подключения. В режиме <asp:connectionszone>
подключения элемент используется для создания соединений между элементами управления. В режиме подключения щелкните стрелку вниз в строке заголовка элемента управления ПОЧТОВЫЙ ИНДЕКС , чтобы активировать меню глаголов, а затем нажмите кнопку Подключить. После появления пользовательского интерфейса подключения обратите внимание, что подключение уже создано с помощью кода, содержащегося в методе Page_Load
. Если вы вернеесь на эту страницу в более позднем сеансе браузера, это статическое подключение уже будет установлено и не потребуется повторно создавать при каждой загрузке страницы.
Комментарии
Соединение веб-частей всегда включает в себя только два элемента управления: один выступает в качестве поставщика данных, а другой выступает в качестве потребителя данных. Каждый элемент управления должен иметь один или несколько методов, определенных как точки подключения. В случае с элементом управления поставщика его точками подключения являются ProviderConnectionPoint объекты.
Поставщик всегда должен иметь хотя бы одну точку подключения, чтобы иметь возможность установить подключение. Метод GetProviderConnectionPoints проверяет элемент управления поставщика и извлекает коллекцию всех его точек подключения. Получение точек подключения поставщика является необходимым шагом при формировании подключения веб-частей.