ConnectionProviderAttribute ConnectionProviderAttribute ConnectionProviderAttribute ConnectionProviderAttribute Class

Определение

Определяет метод обратного вызова в серверном элементе управления, который выступает в роли поставщика для связи веб-частей, и позволяет разработчикам задавать данные о точке подключения поставщика.Identifies the callback method in a server control acting as the provider in a Web Parts connection, and enables developers to specify details about the provider's connection point.

public ref class ConnectionProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method)]
public class ConnectionProviderAttribute : Attribute
type ConnectionProviderAttribute = class
    inherit Attribute
Public Class ConnectionProviderAttribute
Inherits Attribute
Наследование
ConnectionProviderAttributeConnectionProviderAttributeConnectionProviderAttributeConnectionProviderAttribute
Атрибуты

Примеры

В следующем примере кода показано использование ConnectionProviderAttribute класс, показывая, как объявить ConnectionProviderAttribute элемент метаданных для метода обратного вызова в элементе управления поставщика.The following code example demonstrates using the ConnectionProviderAttribute class, by showing how to declare the ConnectionProviderAttribute metadata element on a callback method in a provider control. Обратите внимание, что используется Простейшая перегрузка конструктора. только displayName значения параметра.Note that the simplest overload of the constructor is used; only the displayName parameter value is supplied.

      [ConnectionProvider("Row")]
      public IWebPartRow GetConnectionInterface()
{
          return new RowProviderWebPart();
      }
<ConnectionProvider("Row")> _
Public Function GetConnectionInterface() As IWebPartRow
    Return New RowProviderWebPart()

End Function 'GetConnectionInterface

В следующем примере кода демонстрируется создание basic, статические подключения между двумя элементами управления веб-частей с помощью WebPartConnection класса.The following code examples demonstrate how to create a basic, static connection between two Web Parts controls using the WebPartConnection class. Файлы кода поставщика и потребителя следует поместить в папку App_Code в папке приложения, содержащий страницу .aspx.The provider and consumer code files should be put into the App_Code folder under the application folder that contains the .aspx page.

В первом примере класс, выступающий в качестве поставщика.The first example shows a class acting as a provider. Обратите внимание на то, что метод используется в качестве метода обратного вызова с ConnectionProviderAttribute элемент метаданных.Notice that a method is designated as the callback method with the ConnectionProviderAttribute metadata element.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//This sample code creates a Web Parts control that acts as a provider of row data.
namespace My 
{
    public sealed class RowProviderWebPart : WebPart, IWebPartRow 
	{

        private DataTable _table;

        public RowProviderWebPart() 
		{
            _table = new DataTable();

            DataColumn col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Name";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(string);
            col.ColumnName = "Address";
            _table.Columns.Add(col);

            col = new DataColumn();
            col.DataType = typeof(int);
            col.ColumnName = "ZIP Code";
            _table.Columns.Add(col);

            DataRow row = _table.NewRow();
            row["Name"] = "John Q. Public";
            row["Address"] = "123 Main Street";
            row["ZIP Code"] = 98000;
            _table.Rows.Add(row);
        }
        [ConnectionProvider("Row")]
        public IWebPartRow GetConnectionInterface()
		{
            return new RowProviderWebPart();
        }
        public PropertyDescriptorCollection Schema 
		{
            get {
                return TypeDescriptor.GetProperties(_table.DefaultView[0]);
				}
        }
		public void GetRowData(RowCallback callback)
		{
			callback(_table.Rows);
		}
    }
}
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Reflection
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

'This sample code creates a Web Parts control that acts as a provider of row data.
Namespace MyCustomWebPart

    Public NotInheritable Class RowProviderWebPart
        Inherits WebPart
        Implements IWebPartRow

        Private _table As DataTable


        Public Sub New()
            _table = New DataTable()

            Dim col As New DataColumn()
            col.DataType = GetType(String)
            col.ColumnName = "Name"
            _table.Columns.Add(col)

            col = New DataColumn()
            col.DataType = GetType(String)
            col.ColumnName = "Address"
            _table.Columns.Add(col)

            col = New DataColumn()
            col.DataType = GetType(Integer)
            col.ColumnName = "ZIP Code"
            _table.Columns.Add(col)

            Dim row As DataRow = _table.NewRow()
            row("Name") = "John Q. Public"
            row("Address") = "123 Main Street"
            row("ZIP Code") = 98000
            _table.Rows.Add(row)

        End Sub 'New

        <ConnectionProvider("Row")> _
        Public Function GetConnectionInterface() As IWebPartRow
            Return New RowProviderWebPart()

        End Function 'GetConnectionInterface

        Public ReadOnly Property Schema() As PropertyDescriptorCollection _
            Implements IWebPartRow.Schema
            Get
                Return TypeDescriptor.GetProperties(_table.DefaultView(0))
            End Get
        End Property

        Public Sub GetRowData(ByVal callback As RowCallback) _
            Implements IWebPartRow.GetRowData
            callback(_table.Rows)

        End Sub 'GetRowData
    End Class 'RowProviderWebPart 

Во втором примере показан класс, выступающий в качестве получателя.The second example shows a class acting as a consumer.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
// This sample code creates a Web Parts control that acts as a consumer of row data.
namespace My 
{

    public sealed class RowConsumerWebPart : WebPart {
        private IWebPartRow _provider;
		private ICollection _tableData;
	
			private void GetRowData(object rowData)
			{
				_tableData = (ICollection)rowData;
			}

		protected override void OnPreRender(EventArgs e)
		{
				if (_provider != null)
				{
					_provider.GetRowData(new RowCallback(GetRowData));
				}
		}


        protected override void RenderContents(HtmlTextWriter writer) {
            if (_provider != null) {
                PropertyDescriptorCollection props = _provider.Schema;
				int count = 0;
                if (props != null && props.Count > 0 && _tableData != null) {
                    foreach (PropertyDescriptor prop in props) 
					{
						foreach (DataRow o in _tableData)
						{
							writer.Write(prop.DisplayName + ": " + o[count]);
							writer.WriteBreak();
							writer.WriteLine();
							count = count + 1;
						}
                    }
                }
                else {
                    writer.Write("No data");
                }
            }
            else {
                writer.Write("Not connected");
            }
        }
        [ConnectionConsumer("Row")]
        public void SetConnectionInterface(IWebPartRow provider) 
		{
            _provider = provider;
        }
         }
    
    }
//}
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Reflection
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

' This sample code creates a Web Parts control that acts as a consumer of row data.
Namespace MyCustomWebPart

    Public NotInheritable Class RowConsumerWebPart
        Inherits WebPart
        Private _provider As IWebPartRow
        Private _tableData As ICollection


        Private Sub GetRowData(ByVal rowData As Object)
            _tableData = CType(rowData, ICollection)

        End Sub 'GetRowData


        Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
            If Not (_provider Is Nothing) Then
                '        _provider.GetRowData(AddressOf (New RowCallback(GetRowData)))
                _provider.GetRowData(AddressOf GetRowData)
                '    _provider.GetRowData(New RowCallback(AddressOf GetRowData))
            End If

        End Sub 'OnPreRender



        Protected Overrides Sub RenderContents(ByVal writer As HtmlTextWriter)
            If Not (_provider Is Nothing) Then
                Dim props As PropertyDescriptorCollection = _provider.Schema
                Dim count As Integer = 0
                If Not (props Is Nothing) AndAlso props.Count > 0 AndAlso Not (_tableData Is Nothing) Then
                    Dim prop As PropertyDescriptor
                    For Each prop In props
                        Dim o As DataRow
                        For Each o In _tableData
                            writer.Write(prop.DisplayName & ": " & o(count))
                            writer.WriteBreak()
                            writer.WriteLine()
                            count = count + 1
                        Next o
                    Next prop
                Else
                    writer.Write("No data")
                End If
            Else
                writer.Write("Not connected")
            End If

        End Sub 'RenderContents

        <ConnectionConsumer("Row")> _
        Public Sub SetConnectionInterface(ByVal provider As IWebPartRow)
            _provider = provider

        End Sub 'SetConnectionInterface
    End Class 'RowConsumerWebPart 

Последнем примере показана страница ASP.NET, который содержит два элемента управления.The final example shows the ASP.NET page that contains the two controls.

<%@ page language="C#" %>
<%@ register TagPrefix="my" Namespace="My" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IRow Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- A static or dynamic connection is required to link two Web Parts controls. --->
        <asp:webpartmanager ID="WebPartManager1" runat="server">
            <staticconnections>
                <asp:webpartconnection ID="wp1" ProviderID="provider1" ConsumerID="consumer1" >
                </asp:webpartconnection>
            </staticconnections>
        </asp:webpartmanager>
       
        <asp:webpartzone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <!-- The following two lines specify the two connected controls. --->
                <my:RowProviderWebPart ID="provider1" runat="server" ToolTip="Row Provider Control" />
                <my:RowConsumerWebPart ID="consumer1" runat="server" ToolTip="Row Consumer Control" />
            </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>
<%@ page language="VB" %>
<%@ Register TagPrefix="my" Namespace="MyCustomWebPart" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>IRow Test Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!-- A static or dynamic connection is required to link two Web Parts controls. --->
        <asp:webpartmanager ID="WebPartManager1" runat="server">
            <staticconnections>
                <asp:webpartconnection ID="wp1" ProviderID="provider1" ConsumerID="consumer1" >
                </asp:webpartconnection>
            </staticconnections>
        </asp:webpartmanager>
       
        <asp:webpartzone ID="WebPartZone1" runat="server">
            <ZoneTemplate>
                <my:RowProviderWebPart ID="provider1" runat="server" ToolTip="Row Provider Control" />
                <my:RowConsumerWebPart ID="consumer1" runat="server" ToolTip="Row Consumer Control" />
           </ZoneTemplate>
        </asp:webpartzone>
    </div>
    </form>
</body>
</html>

Комментарии

Подключение веб-частей состоит из двух серверных элементов управления, находящихся в WebPartZoneBase зоны и обмениваться данными с помощью экземпляра интерфейса передается от одного элемента управления в другой.A Web Parts connection consists of two server controls residing in a WebPartZoneBase zone and sharing data by means of an interface instance passed from one control to the other. Элемент управления, который служит экземпляр интерфейса называется поставщиком, а элемент управления, который получает экземпляр интерфейса и процессы или отображение данных, называется потребителем.The control that serves the interface instance is called the provider, and the control that receives the interface instance and processes or displays the data is called the consumer. Сведения о подключениях см. в разделе WebPartConnection класс и Обзор подключений веб-частей.For details on connections, see the WebPartConnection class and Web Parts Connections Overview.

Размер элемента управления поставщика в подключении можно WebPart элемент управления или любого типа из сервера или пользовательский элемент управления, но он должен иметь метод в качестве метода обратного вызова.The provider control in a connection can be a WebPart control or any type of server or user control, but it must have a method designated as a callback method. Метод обратного вызова вызывается во время подключения, и его назначение — возвращает потребителю экземпляр интерфейса, который содержит данные.The callback method is invoked during the connection process, and its purpose is to return to the consumer an interface instance that contains data. Чтобы указать метод, который служит в качестве метода обратного вызова в поставщике, необходимо добавить ConnectionProviderAttribute элемент метаданных метода (элемент основан на ConnectionProviderAttribute класса).To designate the method that serves as the callback method in a provider, you must add a ConnectionProviderAttribute metadata element to the method (the element is based on the ConnectionProviderAttribute class).

Помимо метода обратного вызова в поставщике, обозначающий ConnectionProviderAttribute объекта также позволяет указать некоторые сведения о точке подключения поставщика.In addition to designating the callback method in a provider, the ConnectionProviderAttribute object also enables you to specify certain details about a provider's connection point. Точка подключения поставщика — это экземпляр ProviderConnectionPoint класс, который инкапсулирует все сведения о поставщике, необходимые для установления подключения, включая тип элемента управления поставщика, он может подключаться к нескольким получателям, в то же время, что Тип интерфейса поставщик обслуживает для потребителей, сведения о методе обратного вызова и отображаемое имя, которое представляет точки подключения поставщика в пользовательском интерфейсе (UI).A provider connection point is an instance of the ProviderConnectionPoint class that encapsulates all the details about a provider needed to establish a connection, including the provider's control type, whether it can connect to multiple consumers at the same time, what type of interface the provider serves to consumers, details about the callback method, and a display name that represents the provider connection point in the user interface (UI). Каждое соединение веб-частей содержит точки подключения поставщика, который связан с элементом управления поставщика.Every Web Parts connection includes a provider connection point that is associated with the provider control.

При добавлении ConnectionProviderAttribute элемент метаданных в метод обратного вызова в поставщике, можно также используется для укажите следующие сведения о точке подключения поставщика: отображаемое имя для точки подключения (Дополнительные сведения см. в разделе DisplayName свойство), ли поставщик может подключиться к нескольким получателям в то же время (Дополнительные сведения см. в разделе AllowsMultipleConnections свойство), идентификатор для точки подключения (Дополнительные сведения см. в разделе ID свойства) и тип точки подключения, используемой поставщиком (для сведения см. в разделе ConnectionPointType свойство).When you add the ConnectionProviderAttribute metadata element to the callback method in a provider, you can also use it to specify the following details about the provider connection point: a display name for the connection point (for details, see the DisplayName property), whether the provider can connect to multiple consumers at the same time (for details, see the AllowsMultipleConnections property), an ID for the connection point (for details, see the ID property), and the type of the connection point that the provider uses (for details, see the ConnectionPointType property). Четыре перегрузки конструктора для ConnectionProviderAttribute каждого класса имеют параметры, которые позволяют пользователю указать значения для одного или нескольких из этих свойств точки подключения, когда создается новый экземпляр класса.The four overloads of the constructor for the ConnectionProviderAttribute class each have parameters that allow you to specify values for one or more of these connection point properties when a new instance of the class is created. Большинство свойств для точки подключения поставщика также могут быть заданы программно; настраивать их с помощью ConnectionProviderAttribute элемент является необязательным.Most of the properties for a provider connection point can also be set programmatically; setting them using the ConnectionProviderAttribute element is optional.

Примечание

При добавлении ConnectionProviderAttribute — единственный обязательный параметр, который всегда следует указывать элемент метаданных для метода обратного вызова в поставщике, displayName параметра (Дополнительные сведения см. в разделе ConnectionProviderAttribute(String) перегрузку конструктора).When you add the ConnectionProviderAttribute metadata element to a callback method in a provider, the only required parameter that you must always specify is the displayName parameter (for details, see the ConnectionProviderAttribute(String) constructor overload). Значение этого параметра будет назначено DisplayName свойство, и когда пользователь открывает пользовательский Интерфейс подключения (созданные ConnectionsZone управления), отображаемое имя представляет точки подключения поставщика в пользовательском Интерфейсе.The value of this parameter is assigned to the DisplayName property, and when a user opens the connection UI (created by the ConnectionsZone control), the display name represents the provider connection point in the UI. Если назначить несколько методов обратного вызова в элементе управления поставщика, имеется несколько точек подключения, а также при добавлении ConnectionProviderAttribute элемент метаданных для каждого метода обратного вызова, следует также указать значение для id параметр, чтобы точка подключения поставщика имеет уникального идентификатора.If you designate multiple callback methods in a provider control, you will have multiple possible connection points to choose from, and when you add the ConnectionProviderAttribute metadata element to each callback method, you should also specify a value for the id parameter, so that each provider connection point has a known, unique identifier.

Конструкторы

ConnectionProviderAttribute(String) ConnectionProviderAttribute(String) ConnectionProviderAttribute(String) ConnectionProviderAttribute(String)

Инициализирует новый экземпляр класса ConnectionProviderAttribute, указывая отображаемое имя для точки подключения поставщика.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name for the provider connection point.

ConnectionProviderAttribute(String, String) ConnectionProviderAttribute(String, String) ConnectionProviderAttribute(String, String) ConnectionProviderAttribute(String, String)

Инициализирует новый экземпляр класса ConnectionProviderAttribute, указывая отображаемое имя и идентификатор для точки подключения поставщика.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name and an ID for the provider connection point.

ConnectionProviderAttribute(String, String, Type) ConnectionProviderAttribute(String, String, Type) ConnectionProviderAttribute(String, String, Type) ConnectionProviderAttribute(String, String, Type)

Инициализирует новый экземпляр класса ConnectionProviderAttribute, указывая отображаемое имя, идентификатор и определенный тип объекта точки подключения для использования с точкой подключения поставщика.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name, an ID, and a specific type of connection point object to use for the provider connection point.

ConnectionProviderAttribute(String, Type) ConnectionProviderAttribute(String, Type) ConnectionProviderAttribute(String, Type) ConnectionProviderAttribute(String, Type)

Инициализирует новый экземпляр класса ConnectionProviderAttribute, указывая отображаемое имя и определенный тип объекта точки подключения, используемые для точки подключения поставщика.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name and a specific type of connection point object to use for the provider connection point.

Свойства

AllowsMultipleConnections AllowsMultipleConnections AllowsMultipleConnections AllowsMultipleConnections

Получает или задает значение, указывающее, поддерживает ли точка подключения несколько одновременных подключений.Gets or sets a value that indicates whether the connection point allows multiple connections.

ConnectionPointType ConnectionPointType ConnectionPointType ConnectionPointType

Получает тип точки подключения, сопоставленной с элементом управления поставщика.Gets the type of the connection point associated with a provider control.

DisplayName DisplayName DisplayName DisplayName

Получает понятное имя точки подключения поставщика.Gets the friendly name of the provider connection point.

DisplayNameValue DisplayNameValue DisplayNameValue DisplayNameValue

Получает или задает строку, выступающую в качестве значения свойства DisplayName, для использования в целях локализации.Gets or sets the string used as the value of the DisplayName property, for use in localization scenarios.

ID ID ID ID

Получает строку, представляющую уникальный идентификатор для объекта точки подключения поставщика.Gets a string that represents the unique identity of the provider connection point object.

TypeId TypeId TypeId TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Методы

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код для данного экземпляра.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

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

Дополнительно