WebPartTransformer WebPartTransformer WebPartTransformer WebPartTransformer Class

Definizione

Fornisce implementazione di base per consentire alle classi di trasformazione di convertire i dati tra due punti di connessione incompatibili.Provides basic implementation for transformer classes to convert data between two incompatible connection points.

public ref class WebPartTransformer abstract
public abstract class WebPartTransformer
type WebPartTransformer = class
Public MustInherit Class WebPartTransformer
Ereditarietà
WebPartTransformerWebPartTransformerWebPartTransformerWebPartTransformer
Derivato

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come creare un trasformatore personalizzato WebPartTransformer che deriva dalla classe.The following code example demonstrates how to create a customized transformer that derives from the WebPartTransformer class. Il trasformatore RowToStringTransformer, denominato, consente di connettere un provider Web part e Web part consumer con punti di connessione incompatibili.The transformer, named RowToStringTransformer, allows for a Web Parts provider and Web Parts consumer with incompatible connection points to be connected. Il provider presenta dati di tipo IWebPartRow, ma il consumer accetta solo dati di Stringtipo.The provider presents data of type IWebPartRow, but the consumer accepts only data of type String. La RowToStringTransformer classe esegue la conversione necessaria.The RowToStringTransformer class performs the necessary conversion.

Nell'esempio di codice non è inclusa un'implementazione del provider o del consumer.The code example does not include an implementation of the provider or consumer. È necessario creare un provider che implementi IWebPartRow l'interfaccia e un consumer che prevede i dati attraverso un'interfaccia IString personalizzata denominata per il funzionamento dell'esempio.You must create a provider that implements the IWebPartRow interface and a consumer that expects data through a customized interface named IString for the example to work.

// An interface that the transformer provides to the consumer.
[AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
  Level = AspNetHostingPermissionLevel.Minimal)]
public interface IString
{
    void GetStringValue(StringCallback callback);
}
' An interface that the transformer provides to the consumer.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Interface IString
    Sub GetStringValue(ByVal callback As StringCallback)
End Interface

La prima sezione dell'esempio di codice contiene il codice per i controlli del provider e del consumer Web part e il codice per il trasformatore.The first section of the code example contains code for the provider and consumer Web Parts controls, and the code for the transformer.

// A transformer that transforms a row to a string.
[AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
  Level = AspNetHostingPermissionLevel.Minimal)]
[WebPartTransformer(typeof(IWebPartRow), typeof(IString))]
public class RowToStringTransformer : WebPartTransformer, IString
{

    private IWebPartRow _provider;
    private StringCallback _callback;

    private void GetRowData(object rowData)
    {
        PropertyDescriptorCollection props = _provider.Schema;
        if (props != null && props.Count > 0 && rowData != null)
        {
            string returnValue = String.Empty;
            foreach (PropertyDescriptor prop in props)
            {
                if (prop != props[0])
                {
                    returnValue += ", ";
                }
                returnValue += prop.DisplayName + ": " + prop.GetValue(rowData);
            }
            _callback(returnValue);
        }
        else
        {
            _callback(null);
        }
    }
    
    public override object Transform(object providerData)
    {
        _provider = (IWebPartRow)providerData;
        return this;
    }

    void IString.GetStringValue(StringCallback callback)
    {
        if (callback == null)
        {
            throw new ArgumentNullException("callback");
        }

        if (_provider != null)
        {
            _callback = callback;
            _provider.GetRowData(new RowCallback(GetRowData));
        }
        else
        {
            callback(null);
        }
    }
}
' A transformer that transforms a row to a string.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
<WebPartTransformer(GetType(IWebPartRow), GetType(IString))> _
Public Class RowToStringTransformer
    Inherits WebPartTransformer
    Implements IString

    Private _provider As IWebPartRow
    Private _callback As StringCallback

    Private Sub GetRowData(ByVal rowData As Object)
        Dim props As PropertyDescriptorCollection = _provider.Schema

        If ((Not (props Is Nothing)) AndAlso (props.Count > 0) _
          AndAlso (Not (rowData Is Nothing))) Then
            Dim returnValue As String = String.Empty
            For Each prop As PropertyDescriptor In props
                If Not (prop Is props(0)) Then
                    returnValue += ", "
                End If
                returnValue += prop.DisplayName.ToString() + ": " + _
                    prop.GetValue(rowData).ToString()
            Next
            _callback(returnValue)
        Else
            _callback(Nothing)
        End If
    End Sub

    Public Overrides Function Transform(ByVal providerData As Object) As Object
        _provider = CType(providerData, IWebPartRow)
        Return Me
    End Function


    Sub GetStringValue(ByVal callback As StringCallback) _
       Implements IString.GetStringValue
        If (callback Is Nothing) Then
            Throw New ArgumentNullException("callback")
        End If

        If (Not (_provider Is Nothing)) Then
            _callback = callback
            _provider.GetRowData(New RowCallback(AddressOf GetRowData))
        Else
            callback(Nothing)
        End If
    End Sub
End Class

La seconda sezione dell'esempio di codice illustra come includere il trasformatore all'interno della sintassi dichiarativa per un WebPartConnection oggetto.The second section of the code example shows how to include the transformer within the declarative syntax for a WebPartConnection object.

<%@ Page language="c#" trace="false" debug="true" %> 
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuCS" 
    src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.CS.Controls" %>

<script runat="server">

</script>

<!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>
<title>Web Parts Transformer Sample Page</title>
</head>
<body>
<form id="Form1" runat="server">

<asp:webpartmanager id="manager" runat="server">
  <staticconnections>
    <asp:webpartconnection id="conn1" providerid="p1" consumerid="c1">
      <wp:rowtostringtransformer />
    </asp:webpartconnection>
  </staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenucs id="menu1" runat="server" />

<table>
<tr valign="top">
  <td>
  <asp:webpartzone id="zone1" headertext="zone1" runat="server">
    <zonetemplate>
      <wp:rowproviderwebpart id="p1" runat="server" />
      <wp:stringconsumerwebpart id="c1" runat="server" />
    </zonetemplate>
  </asp:webpartzone>
  </td>
  <td>
  <asp:connectionszone id="connectionszone1" runat="server" />
  </td>
</tr>
</table>

</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuVB" 
    src="~/displaymodemenuvb.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.VB.Controls" %>

<script runat="server">

</script>

<!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>
    <title>Web Parts Transformers Sample Page</title>
</head>
<body>
<form id="Form1" runat="server">

<asp:webpartmanager id="manager" runat="server">
  <staticconnections>
    <asp:webpartconnection id="conn1" providerid="p1" consumerid="c1">
      <wp:rowtostringtransformer />
    </asp:webpartconnection>
  </staticconnections>
</asp:webpartmanager>
<uc1:displaymodemenuvb id="menu1" runat="server" />

<table>
<tr valign="top">
  <td>
  <asp:webpartzone id="zone1" headertext="zone1" runat="server">
    <zonetemplate>
      <wp:rowproviderwebpart id="p1" runat="server" />
      <wp:stringconsumerwebpart id="c1" runat="server" />
    </zonetemplate>
  </asp:webpartzone>
  </td>
  <td>
  <asp:connectionszone id="connectionszone1" runat="server" />
  </td>
</tr>
</table>

</form>
</body>
</html>

Un trasformatore personalizzato deve essere specificato <transformers> nella sezione del file Web. config per poter essere utilizzato in una pagina Web.A customized transformer must be specified in the <transformers> section of the Web.config file to be available for use in a Web page. Nella terza sezione dell'esempio di codice viene illustrato come aggiungere il Transformer personalizzato al file Web. config.The third section of the code example shows how to add the customized transformer to the Web.config file.

<webParts enableExport="true">  
    <transformers>  
       <add name="RowToStringTransformer"  
          type="Samples.AspNet.VB.Controls.RowToStringTransformer" />  
    </transformers>  
</webParts>  
<webParts enableExport="true">  
    <transformers>  
       <add name="RowToStringTransformer"  
          type="Samples.AspNet.CS.Controls.RowToStringTransformer" />  
    </transformers>  
</webParts>  

L'esempio di codice include un controllo utente che consente di modificare le modalità di visualizzazione in una pagina Web part.The code example includes a user control that enables you to change display modes on a Web Parts page. Il codice sorgente per il controllo utente deriva da un altro argomento.The source code for the user control comes from another topic. È possibile ottenere il file con estensione ascx per il controllo utente dalla procedura dettagliata: Modifica delle modalità di visualizzazione in unapagina Web part e deve essere inserita nella stessa cartella della pagina aspx.You can obtain the .ascx file for the user control from Walkthrough: Changing Display Modes on a Web Parts Page, and it must be placed in the same folder as the .aspx page.

Commenti

I trasformatori vengono utilizzati per tradurre i dati tra due controlli Web part con punti di connessione incompatibili.Transformers are used to translate data between two Web Parts controls with incompatible connection points. I punti di connessione sono incompatibili quando forniscono o utilizzano dati attraverso interfacce differenti.Connection points are incompatible when they provide or consume data through different interfaces. Un provider che implementa un punto di connessione del provider di tipo IWebPartRow , ad esempio, non può connettersi direttamente a un consumer in attesa IWebPartTabledi un punto di connessione del provider di tipo.For example, a provider implementing a provider connection point of type IWebPartRow could not directly connect to a consumer expecting a provider connection point of type IWebPartTable. Al contrario, è necessario usare un trasformatore per connettere i due controlli Web part.Instead, a transformer must be used to connect the two Web Parts controls.

Il trasformatore accetta dati del tipo supportato dal punto di connessione del provider.The transformer accepts data of the type supported by the provider connection point. Esegue l'elaborazione interna necessaria per convertire i dati nel tipo supportato dal punto di connessione consumer.It does the necessary internal processing to convert that data into the type supported by the consumer connection point.

Un trasformatore può fornire un'interfaccia utente (UI) che consente all'utente di configurare il trasformatore in modalità di connessione.A transformer can provide a user interface (UI) that allows the user to configure the transformer when in the connect mode. Il controllo della configurazione viene recuperato tramite CreateConfigurationControl il metodo e viene visualizzato in una zona di connessione Web part.The configuration control is retrieved through the CreateConfigurationControl method and is displayed in a Web Parts connections zone.

WebPartTransformerè una classe astratta ed è necessario estenderla per fornire traduzioni personalizzate tra tipi diversi di punti di connessione.WebPartTransformer is an abstract class and must be extended to provide customized translations between different types of connection points.

Note per gli eredi

È necessario eseguire l' Transform(Object) override del metodo.You must override the Transform(Object) method.

Costruttori

WebPartTransformer() WebPartTransformer() WebPartTransformer() WebPartTransformer()

Inizializza una nuova istanza della classe WebPartTransformer.Initializes a new instance of the WebPartTransformer class.

Metodi

CreateConfigurationControl() CreateConfigurationControl() CreateConfigurationControl() CreateConfigurationControl()

Visualizza un controllo ASP.NET tramite cui viene configurato un trasformatore nella zona ConnectionsZone.Displays an ASP.NET control that configures a transformer in the ConnectionsZone zone.

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

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
LoadConfigurationState(Object) LoadConfigurationState(Object) LoadConfigurationState(Object) LoadConfigurationState(Object)

Carica lo stato della configurazione salvato con il metodo SaveConfigurationState().Loads the configuration state saved with the SaveConfigurationState() method.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
SaveConfigurationState() SaveConfigurationState() SaveConfigurationState() SaveConfigurationState()

Salva lo stato della configurazione impostato dall'utente nel controllo configurazione ASP.NET.Saves the configuration state set by the user in the ASP.NET configuration control.

ToString() ToString() ToString() ToString()

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

(Inherited from Object)
Transform(Object) Transform(Object) Transform(Object) Transform(Object)

Se implementato, fornisce un oggetto per la trasformazione dei dati.When implemented, provides an object for transforming the data.

Si applica a