ConnectionProviderAttribute Klasse

Definition

Gibt die Rückrufmethode in einem Serversteuerelement an, das als Anbieter in einer Webparts-Verbindung fungiert und ermöglicht Entwicklern das Angeben von Details zum Anbieterverbindungspunkt.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
Vererbung
ConnectionProviderAttribute
Attribute

Beispiele

Im folgenden Codebeispiel wird die Verwendung ConnectionProviderAttribute der-Klasse veranschaulicht, indem gezeigt wird ConnectionProviderAttribute , wie das Metadata-Element für eine Rückruf Methode in einem Anbieter Steuerelement deklariert wird.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. Beachten Sie, dass die einfachste Überladung des Konstruktors verwendet wird. Es wird displayName nur der Parameterwert angegeben.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

Die folgenden Codebeispiele veranschaulichen, wie Sie mithilfe der WebPartConnection -Klasse eine einfache, statische Verbindung zwischen zwei Webparts-Steuerelementen erstellen.The following code examples demonstrate how to create a basic, static connection between two Web Parts controls using the WebPartConnection class. Die Anbieter-und consumercodedateien sollten im Ordner "App_Code" unter dem Anwendungsordner abgelegt werden, der die ASPX-Seite enthält.The provider and consumer code files should be put into the App_Code folder under the application folder that contains the .aspx page.

Das erste Beispiel zeigt eine Klasse, die als Anbieter fungiert.The first example shows a class acting as a provider. Beachten Sie, dass eine Methode als Rückruf Methode mit dem ConnectionProviderAttribute Metadata-Element festgelegt ist.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.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

        <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
    End Class

Das zweite Beispiel zeigt eine Klasse, die als Consumer fungiert.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.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


        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



        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

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

        End Sub
    End Class

Das letzte Beispiel zeigt die Seite ASP.net, die die beiden-Steuerelemente enthält.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>

Hinweise

Eine Webparts Verbindung besteht aus zwei Server Steuerelementen, die WebPartZoneBase sich in einer Zone befinden, und die Freigabe von Daten über eine Schnittstellen Instanz, die von einem Steuerelement an das andere weitergegeben wurde.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. Das Steuerelement, das die Schnittstellen Instanz bedient, wird als Anbieter bezeichnet, und das Steuerelement, das die Schnittstellen Instanz empfängt und die Daten verarbeitet oder anzeigt, wird als Consumer bezeichnet.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. Weitere Informationen zu Verbindungen finden Sie unter WebPartConnection Übersicht über Klassen und Webparts Verbindungen.For details on connections, see the WebPartConnection class and Web Parts Connections Overview.

Das Anbieter Steuerelement in einer Verbindung kann ein WebPart Steuerelement oder ein beliebiger Typ von Server-oder Benutzer Steuerelement sein, aber es muss über eine Methode verfügen, die als Rückruf Methode festgelegt ist.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. Die Rückruf Methode wird während des Verbindungs Vorgangs aufgerufen, und Ihr Zweck besteht darin, an den Consumer eine Schnittstellen Instanz zurückzugeben, die Daten enthält.The callback method is invoked during the connection process, and its purpose is to return to the consumer an interface instance that contains data. Zum Festlegen der Methode, die als Rückruf Methode in einem Anbieter fungiert, müssen Sie der- ConnectionProviderAttribute Methode ein Metadatenelement hinzufügen (das-Element basiert ConnectionProviderAttribute auf der-Klasse).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).

Zusätzlich zum Festlegen der Rückruf Methode in einem Anbieter können Sie mit dem ConnectionProviderAttribute -Objekt auch bestimmte Details zum Verbindungspunkt eines Anbieters angeben.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. Ein Anbieter Verbindungspunkt ist eine Instanz der ProviderConnectionPoint -Klasse, die alle Details über einen Anbieter kapselt, der zum Herstellen einer Verbindung erforderlich ist, einschließlich des Steuerelement Typs des Anbieters, unabhängig davon, ob er gleichzeitig eine Verbindung mit mehreren Consumern herstellen kann. der Typ der Schnittstelle, die der Anbieter für Consumer bietet, Details zur Rückruf Methode und ein Anzeige Name, der den Anbieter Verbindungspunkt in der Benutzeroberfläche darstellt.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). Jede Webparts Verbindung enthält einen Anbieter Verbindungspunkt, der dem Anbieter Steuerelement zugeordnet ist.Every Web Parts connection includes a provider connection point that is associated with the provider control.

Wenn Sie der Rückruf ConnectionProviderAttribute Methode in einem Anbieter das Metadatenelement hinzufügen, können Sie es auch verwenden, um die folgenden Details zum Anbieter Verbindungspunkt anzugeben: einen anzeigen Amen für den Verbindungspunkt (Ausführliche Informationen finden Sie DisplayName in der-Eigenschaft). Gibt an, ob der Anbieter gleichzeitig Verbindungen mit mehreren Consumern herstellen kann (Weitere Informationen AllowsMultipleConnections finden Sie unter der-Eigenschaft), eine ID für den Verbindungspunkt ( ID ausführliche Informationen finden Sie unter der-Eigenschaft) und den Typ des Verbindungs Punkts, den der Anbieter verwendet (für Weitere Informationen finden Sie ConnectionPointType unter der-Eigenschaft.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). Die vier über Ladungen des Konstruktors für die ConnectionProviderAttribute -Klasse verfügen jeweils über Parameter, die es Ihnen ermöglichen, Werte für eine oder mehrere dieser Verbindungspunkt Eigenschaften anzugeben, wenn eine neue Instanz der-Klasse erstellt wird.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. Die meisten Eigenschaften für einen Anbieter Verbindungspunkt können auch Programm gesteuert festgelegt werden. die Festlegung mit ConnectionProviderAttribute dem-Element ist optional.Most of the properties for a provider connection point can also be set programmatically; setting them using the ConnectionProviderAttribute element is optional.

Hinweis

Wenn Sie das ConnectionProviderAttribute Metadatenelement einer Rückruf Methode in einem Anbieter hinzufügen, ist der einzige erforderliche Parameter, den Sie immer angeben displayName müssen, der-Parameter (weitere ConnectionProviderAttribute(String) Informationen finden Sie in der Konstruktorüberladung).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). Der Wert dieses Parameters wird der DisplayName -Eigenschaft zugewiesen, und wenn ein Benutzer die Benutzeroberfläche der Verbindung öffnet (durch das ConnectionsZone -Steuerelement erstellt), stellt der Anzeige Name den Anbieter Verbindungspunkt in der Benutzeroberfläche dar.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. Wenn Sie mehrere Rückruf Methoden in einem Anbieter Steuerelement festlegen, stehen Ihnen mehrere mögliche Verbindungspunkte zur Auswahl. Wenn Sie das ConnectionProviderAttribute Metadatenelement jeder Rückruf Methode hinzufügen, sollten Sie auch einen Wert für das id -Parameter, sodass jeder Anbieter Verbindungspunkt über einen bekannten, eindeutigen Bezeichner verfügt.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.

Konstruktoren

ConnectionProviderAttribute(String)

Initialisiert eine neue Instanz der ConnectionProviderAttribute-Klasse und gibt einen Anzeigenamen für den Anbieterverbindungspunkt an.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name for the provider connection point.

ConnectionProviderAttribute(String, String)

Initialisiert eine neue Instanz der ConnectionProviderAttribute-Klasse und gibt einen Anzeigenamen und eine ID für den Anbieterverbindungspunkt an.Initializes a new instance of the ConnectionProviderAttribute class, specifying a display name and an ID for the provider connection point.

ConnectionProviderAttribute(String, String, Type)

Initialisiert eine neue Instanz der ConnectionProviderAttribute-Klasse und gibt einen Anzeigenamen, eine ID und einen bestimmten Typ von Verbindungspunktobjekt zur Verwendung für den Anbieterverbindungspunkt an.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)

Initialisiert eine neue Instanz der ConnectionProviderAttribute-Klasse und gibt einen Anzeigenamen und einen bestimmten Typ eines Verbindungspunktobjekts für den Anbieterverbindungspunkt an.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.

Eigenschaften

AllowsMultipleConnections

Ruft einen Wert ab, der angibt, ob der Verbindungspunkt mehrere Verbindungen zulässt, oder legt diesen fest.Gets or sets a value that indicates whether the connection point allows multiple connections.

ConnectionPointType

Ruft den Typ des Verbindungspunkts ab, der einem Anbietersteuerelement zugeordnet ist.Gets the type of the connection point associated with a provider control.

DisplayName

Ruft den angezeigten Namen des Anbieterverbindungspunkts ab.Gets the friendly name of the provider connection point.

DisplayNameValue

Ruft die Zeichenfolge ab, die als Wert der DisplayName-Eigenschaft in Lokalisierungsszenarios verwendet wird, oder legt diese fest.Gets or sets the string used as the value of the DisplayName property, for use in localization scenarios.

ID

Ruft eine Zeichenfolge ab, die die eindeutige Identität des Anbieterverbindungspunkt-Objekts darstellt.Gets a string that represents the unique identity of the provider connection point object.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.When implemented in a derived class, gets a unique identifier for this Attribute.

(Geerbt von Attribute)

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.Returns a value that indicates whether this instance is equal to a specified object.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.Returns the hash code for this instance.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.Maps a set of names to a corresponding set of dispatch identifiers.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.Provides access to properties and methods exposed by an object.

(Geerbt von Attribute)

Gilt für:

Siehe auch