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 метод в условной проверке, чтобы определить, могут ли элементы управления быть подключены напрямую.
См. также раздел
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- элементы управления веб-частей ASP.NET
Применяется к
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
.
См. также раздел
- GetConsumerConnectionPoints(WebPart)
- GetProviderConnectionPoints(WebPart)
- Connections
- WebPartTransformer
- элементы управления веб-частей ASP.NET