ConnectionProviderAttribute ConnectionProviderAttribute ConnectionProviderAttribute ConnectionProviderAttribute Class

Definizione

Identifica il metodo di callback in un controllo server che funge da provider in una connessione web part e consente agli sviluppatori di specificare i dettagli sul punto di connessione del provider.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
Ereditarietà
ConnectionProviderAttributeConnectionProviderAttributeConnectionProviderAttributeConnectionProviderAttribute
Attributi

Esempi

Esempio di codice seguente viene illustrato come utilizzare il ConnectionProviderAttribute (classe), viene mostrato come dichiarare il ConnectionProviderAttribute elemento dei metadati per un metodo di callback in un controllo provider.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. Si noti che viene utilizzato l'overload più semplice del costruttore; solo il displayName valore del parametro è specificato.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

Gli esempi di codice seguenti illustrano come creare una connessione statica di base tra due controlli Web part tramite il WebPartConnection classe.The following code examples demonstrate how to create a basic, static connection between two Web Parts controls using the WebPartConnection class. I file di codice consumer e provider di devono essere inseriti nella cartella App_Code all'interno della cartella dell'applicazione che contiene la pagina. aspx.The provider and consumer code files should be put into the App_Code folder under the application folder that contains the .aspx page.

Nel primo esempio viene illustrata una classe funge da provider.The first example shows a class acting as a provider. Si noti che un metodo viene indicato come metodo di callback con la ConnectionProviderAttribute elemento dei metadati.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 

Nel secondo esempio viene illustrata una classe funge da consumer.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 

Nell'esempio finale viene illustrata la pagina ASP.NET che contiene i due controlli.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>

Commenti

Una connessione Web part è costituito da due controlli server situati un WebPartZoneBase zona e la condivisione dei dati tramite un'istanza dell'interfaccia passata da un controllo a altro.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. Il controllo che viene utilizzata l'istanza dell'interfaccia viene chiamato il provider e il controllo che riceve l'istanza dell'interfaccia e i processi o Visualizza i dati viene chiamato il consumer.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. Per informazioni dettagliate sulle connessioni, vedere la WebPartConnection classe e panoramica delle connessioni Web part.For details on connections, see the WebPartConnection class and Web Parts Connections Overview.

Il controllo provider in una connessione può essere un WebPart controllo o qualsiasi tipo di controllo server o utente, ma deve contenere un metodo designato come un metodo di callback.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. Il metodo di callback viene richiamato durante il processo di connessione e il suo scopo consiste nel restituire al consumer di un'istanza di interfaccia che contiene i dati.The callback method is invoked during the connection process, and its purpose is to return to the consumer an interface instance that contains data. Per designare il metodo che funge da metodo di callback in un provider, è necessario aggiungere un ConnectionProviderAttribute elemento dei metadati per il metodo (l'elemento di base di ConnectionProviderAttribute classe).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).

Oltre che definisce il metodo di callback in un provider di ConnectionProviderAttribute oggetto consente inoltre di specificare alcuni dettagli sul punto di connessione del provider.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. Un punto di connessione è un'istanza del ProviderConnectionPoint classe che incapsula tutti i dettagli su un provider necessari a stabilire una connessione, ad esempio tipo di controllo del provider, se è possibile connettersi a più consumer nello stesso momento, cosa tipo di interfaccia del provider assegna ai consumer, i dettagli sul metodo di callback e un nome di visualizzazione che rappresenta il punto di connessione nell'interfaccia utente (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). Ogni connessione Web part include un punto di connessione associata al controllo provider.Every Web Parts connection includes a provider connection point that is associated with the provider control.

Quando si aggiunge il ConnectionProviderAttribute elemento dei metadati per il metodo di callback in un provider, si può anche usarlo per specificare i dettagli sul punto di connessione provider seguenti: un nome visualizzato per il punto di connessione (per informazioni dettagliate, vedere il DisplayName proprietà), Se il provider può connettersi a più consumer nello stesso momento (per informazioni dettagliate, vedere la AllowsMultipleConnections proprietà), un ID per il punto di connessione (per informazioni dettagliate, vedere il ID proprietà) e il tipo del punto di connessione utilizzata dal provider (per informazioni dettagliate, vedere il ConnectionPointType proprietà).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). I quattro overload del costruttore per la ConnectionProviderAttribute ogni classe di parametri che consentono di specificare i valori per uno o più di queste proprietà del punto di connessione quando viene creata una nuova istanza della classe.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. La maggior parte delle proprietà di un punto di connessione possono essere impostata anche a livello di codice; vengono impostate usando il ConnectionProviderAttribute elemento è facoltativo.Most of the properties for a provider connection point can also be set programmatically; setting them using the ConnectionProviderAttribute element is optional.

Nota

Quando si aggiunge il ConnectionProviderAttribute elemento dei metadati a un metodo di callback in un provider, è l'unico parametro obbligatorio che è sempre necessario specificare il displayName parametro (per informazioni dettagliate, vedere il ConnectionProviderAttribute(String) overload del costruttore).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). Il valore di questo parametro viene assegnato al DisplayName proprietà, e quando un utente apre l'interfaccia utente di connessione (creato dal ConnectionsZone controllo), il nome visualizzato rappresenta il punto di connessione nell'interfaccia utente.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. Se si impostano più metodi di callback in un controllo provider, si avranno più punti di connessione per scegliere tra e quando si aggiunge il ConnectionProviderAttribute elemento dei metadati per ogni metodo di callback, è necessario specificare anche un valore per il id parametro, in modo che ogni provider punto di connessione ha un identificatore univoco noto.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.

Costruttori

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

Inizializza una nuova istanza della classe ConnectionProviderAttribute, specificando un nome visualizzato per il punto di connessione provider.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)

Inizializza una nuova istanza della classe ConnectionProviderAttribute, specificando un nome visualizzato e un ID per il punto di connessione provider.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)

Inizializza un'istanza nuova della classe ConnectionProviderAttribute, specificando un nome visualizzato, un ID e un tipo specifico di oggetto punto di connessione da usare come punto di connessione del provider.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)

Inizializza una nuova istanza della classe ConnectionProviderAttribute, definendo un nome visualizzato e un tipo di oggetto punto di connessione specifico da utilizzare per il punto di connessione provider.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.

Proprietà

AllowsMultipleConnections AllowsMultipleConnections AllowsMultipleConnections AllowsMultipleConnections

Ottiene o imposta un valore che indica se il punto di connessione consente connessioni multiple.Gets or sets a value that indicates whether the connection point allows multiple connections.

ConnectionPointType ConnectionPointType ConnectionPointType ConnectionPointType

Ottiene il tipo di punto di connessione associato a un controllo provider.Gets the type of the connection point associated with a provider control.

DisplayName DisplayName DisplayName DisplayName

Ottiene il nome descrittivo del punto di connessione provider.Gets the friendly name of the provider connection point.

DisplayNameValue DisplayNameValue DisplayNameValue DisplayNameValue

Ottiene o imposta la stringa utilizzata come valore della proprietà DisplayName, da utilizzare in scenari di localizzazione.Gets or sets the string used as the value of the DisplayName property, for use in localization scenarios.

ID ID ID ID

Ottiene una stringa che rappresenta l'identità univoca del punto di connessione provider.Gets a string that represents the unique identity of the provider connection point object.

TypeId TypeId TypeId TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Metodi

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

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

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

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.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)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.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()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

_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)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.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)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.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)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 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)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Si applica a

Vedi anche