WebPartTransformer Klasse

Definition

Stellt eine grundlegende Implementierung für Transformationsklassen bereit, um Daten zwischen zwei nicht kompatiblen Verbindungspunkten zu konvertieren.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
Vererbung
WebPartTransformer
Abgeleitet

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein angepasster Transformator erstellt wird WebPartTransformer , der von der-Klasse abgeleitet wird.The following code example demonstrates how to create a customized transformer that derives from the WebPartTransformer class. Der Transformator namens RowToStringTransformerermöglicht, dass ein Webparts Anbieter und Webparts Consumer mit inkompatiblen Verbindungs Punkten verbunden werden.The transformer, named RowToStringTransformer, allows for a Web Parts provider and Web Parts consumer with incompatible connection points to be connected. Der Anbieter stellt Daten vom Typ IWebPartRowdar, der Consumer akzeptiert jedoch nur Daten vom StringTyp.The provider presents data of type IWebPartRow, but the consumer accepts only data of type String. Die RowToStringTransformer -Klasse führt die erforderliche Konvertierung aus.The RowToStringTransformer class performs the necessary conversion.

Das Codebeispiel enthält keine Implementierung des Anbieters oder Consumers.The code example does not include an implementation of the provider or consumer. Sie müssen einen Anbieter erstellen, der die IWebPartRow -Schnittstelle implementiert, und einen Consumer, der Daten über IString eine angepasste Schnittstelle mit dem Namen erwartet, damit das Beispiel funktioniert.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

Der erste Abschnitt des Code Beispiels enthält Code für die Steuerelemente Provider und Consumer Webparts und den Code für den Transformator.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

Im zweiten Abschnitt des Code Beispiels wird gezeigt, wie Sie den Transformator in die deklarative Syntax für ein WebPartConnection -Objekt einschließen.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>

Ein benutzerdefinierter Transformator muss im <transformers> -Abschnitt der Datei "Web. config" angegeben werden, damit er für die Verwendung auf einer Webseite verfügbar ist.A customized transformer must be specified in the <transformers> section of the Web.config file to be available for use in a Web page. Der dritte Abschnitt des Code Beispiels zeigt, wie der angepasste Transformator der Datei "Web. config" hinzugefügt wird.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>  

Das Codebeispiel enthält ein Benutzer Steuerelement, das es Ihnen ermöglicht, Anzeigemodi auf einer Webparts Seite zu ändern.The code example includes a user control that enables you to change display modes on a Web Parts page. Der Quellcode für das Benutzer Steuerelement stammt aus einem anderen Thema.The source code for the user control comes from another topic. Sie können die ASCX-Datei für das Benutzer Steuerelement aus der exemplarischen Vorgehensweise abrufen: Ändern der Anzeigemodi auf einer WebpartsSeite und muss in demselben Ordner wie die ASPX-Seite abgelegt werden.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.

Hinweise

Transformatoren werden verwendet, um Daten zwischen zwei Webparts-Steuerelementen mit nicht kompatiblen Verbindungs Punkten zu übersetzen.Transformers are used to translate data between two Web Parts controls with incompatible connection points. Verbindungspunkte sind nicht kompatibel, wenn Sie Daten über verschiedene Schnittstellen bereitstellen oder nutzen.Connection points are incompatible when they provide or consume data through different interfaces. Ein Anbieter, der einen Anbieter Verbindungspunkt vom Typ IWebPartRow implementiert, konnte z. b. nicht direkt eine Verbindung mit einem Consumer herstellen, der einen Anbieter Verbindungspunkt vom Typ IWebPartTableerwartet.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. Stattdessen muss ein Transformator verwendet werden, um die beiden Webparts Steuerelemente zu verbinden.Instead, a transformer must be used to connect the two Web Parts controls.

Der Transformator akzeptiert Daten des Typs, der vom Anbieter Verbindungspunkt unterstützt wird.The transformer accepts data of the type supported by the provider connection point. Die erforderliche interne Verarbeitung wird durchführt, um diese Daten in den vom Consumerverbindungspunkt unterstützten Typ zu konvertieren.It does the necessary internal processing to convert that data into the type supported by the consumer connection point.

Ein Transformator kann eine Benutzeroberfläche bereitstellen, die es dem Benutzer ermöglicht, den Transformator im Verbindungs Modus zu konfigurieren.A transformer can provide a user interface (UI) that allows the user to configure the transformer when in the connect mode. Das Konfigurations Steuerelement wird über die CreateConfigurationControl -Methode abgerufen und in einer Webparts-Verbindungs Zone angezeigt.The configuration control is retrieved through the CreateConfigurationControl method and is displayed in a Web Parts connections zone.

WebPartTransformerist eine abstrakte Klasse und muss erweitert werden, um angepasste Übersetzungen zwischen verschiedenen Typen von Verbindungs Punkten bereitzustellen.WebPartTransformer is an abstract class and must be extended to provide customized translations between different types of connection points.

Hinweise für Ausführende

Sie müssen die Transform(Object) -Methode überschreiben.You must override the Transform(Object) method.

Konstruktoren

WebPartTransformer()

Initialisiert eine neue Instanz der WebPartTransformer-Klasse.Initializes a new instance of the WebPartTransformer class.

Methoden

CreateConfigurationControl()

Zeigt ein ASP.NET-Steuerelement an, das in der ConnectionsZone-Zone einen Transformator konfiguriert.Displays an ASP.NET control that configures a transformer in the ConnectionsZone zone.

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

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

(Geerbt von Object)
LoadConfigurationState(Object)

Lädt den mit der SaveConfigurationState()-Methode gespeicherten Konfigurationszustand.Loads the configuration state saved with the SaveConfigurationState() method.

MemberwiseClone()

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

(Geerbt von Object)
SaveConfigurationState()

Speichert den vom Benutzer festgelegten Konfigurationszustand im ASP.NET-Konfigurationssteuerelement.Saves the configuration state set by the user in the ASP.NET configuration control.

ToString()

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

(Geerbt von Object)
Transform(Object)

Stellt nach dem Implementieren ein Objekt zum Transformieren der Daten bereit.When implemented, provides an object for transforming the data.

Gilt für: