Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

WebPartTransformer, classe

Fournit l'implémentation de base pour les classes de transformateur pour convertir des données entre deux points de connexion incompatibles.

Espace de noms :  System.Web.UI.WebControls.WebParts
Assembly :  System.Web (dans System.Web.dll)
public abstract class WebPartTransformer

Le type WebPartTransformer expose les membres suivants.

  NomDescription
Méthode protégéeWebPartTransformerInitialise une nouvelle instance de la classe WebPartTransformer.
Début
  NomDescription
Méthode publiqueCreateConfigurationControlAffiche un contrôle ASP.NET qui configure un transformateur dans la zone ConnectionsZone.
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéeLoadConfigurationStateCharge l'état de configuration enregistré avec la méthode SaveConfigurationState.
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode protégéeSaveConfigurationStateEnregistre l'état de configuration défini par l'utilisateur dans le contrôle de configuration ASP.NET.
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publiqueTransformUne fois implémentée, fournit un objet pour transformer les données.
Début

Les transformateurs sont utilisés pour traduire des données entre deux contrôles WebPart avec des points de connexion incompatibles. Les points de connexion sont incompatibles lorsqu'ils fournissent ou consomment des données via des interfaces différentes. Par exemple, un fournisseur qui implémente un point de connexion fournisseur de type IWebPartRow ne pourrait pas se connecter directement à un consommateur qui attend un point de connexion fournisseur de type IWebPartTable. À la place, un transformateur doit être utilisé pour connecter les deux contrôles WebPart.

Le transformateur accepte les données du type pris en charge par le point de connexion fournisseur. Il réalise le traitement interne nécessaire pour convertir ces données en des données du type pris en charge par le point de connexion consommateur.

Un transformateur peut fournir une interface utilisateur qui permet à l'utilisateur de configurer le transformateur en mode connexion. Le contrôle de configuration est récupéré via la méthode CreateConfigurationControl et est affiché dans une zone des connexions WebPart.

WebPartTransformer est une classe abstraite et doit être étendu pour fournir des translations personnalisées entre différents types de points de connexion.

Remarques à l'attention des héritiers

Vous devez substituer la méthode Transform.

L'exemple de code suivant illustre comment créer un transformateur personnalisé qui dérive de la classe WebPartTransformer. Le transformateur, nommé RowToStringTransformer, permet à un fournisseur WebPart et un consommateur WebPart avec des points de connexion incompatibles de se connecter. Le fournisseur présente des données de type IWebPartRow, mais le consommateur accepte uniquement des données de type String. La classe RowToStringTransformer effectue la conversion nécessaire.

L'exemple de code n'inclut pas une implémentation du fournisseur ou du consommateur. Vous devez créer un fournisseur qui implémente l'interface IWebPartRow et un consommateur qui attend des données via une interface personnalisée nommée IString pour que l'exemple fonctionne.


// 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);
}


La première section de l'exemple de code contient le code des contrôles WebPart du fournisseur et du consommateur et le code du transformateur.


// 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);
        }
    }
}


La deuxième section de l'exemple de code indique comment inclure le transformateur dans la syntaxe déclarative pour un objet WebPartConnection.


<%@ 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>


Un transformateur personnalisé doit être spécifié dans la section <transformers> du fichier Web.config pour être disponible dans une page Web. La troisième section de l'exemple de code indique comment ajouter le transformateur personnalisé au fichier Web.config.

[Visual Basic]

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

[C#]

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

L'exemple de code contient un contrôle utilisateur qui vous permet de modifier les modes d'affichage sur une page WebPart. Le code source du contrôle utilisateur provient d'une autre rubrique. Vous pouvez obtenir le fichier .ascx pour le contrôle utilisateur à partir de Walkthrough: Changing Display Modes on a Web Parts Page et il doit être placé dans le même dossier que la page .aspx.

.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.