WebPartTransformer クラス
アセンブリ: System.Web (system.web.dll 内)


トランスフォーマは、互換性のないコネクション ポイントを持つ 2 つの Web パーツ コントロール間でのデータ変換に使用されます。コネクション ポイントが異なるインターフェイスを通じてデータを提供または利用する場合、それらのコネクション ポイントの間に互換性はありません。たとえば、IWebPartRow 型のプロバイダ コネクション ポイントを実装しているプロバイダは、IWebPartTable 型のプロバイダ コネクション ポイントを要求するコンシューマに直接接続できません。代わりに、トランスフォーマを使用して 2 つの Web パーツ コントロールを接続する必要があります。
トランスフォーマは、プロバイダ コネクション ポイントによってサポートされる型のデータを受け入れます。そして、そのデータをコンシューマ接続ポイントでサポートされる型に変換するために、必要な内部処理を行います。
トランスフォーマは、接続モードのときにユーザーがトランスフォーマを構成できるユーザー インターフェイス (UI: User Interface) を提供します。構成コントロールは CreateConfigurationControl メソッドを通じて取得され、Web パーツ接続ゾーンに表示されます。
WebPartTransformer は抽象クラスで、異なる型のコネクション ポイント間でのカスタマイズされた変換を提供できるように拡張する必要があります。
継承時の注意 Transform メソッドをオーバーライドする必要があります。
WebPartTransformer クラスから派生した、カスタマイズされたトランスフォーマを作成する方法のコード例を次に示します。RowToStringTransformer という名前のトランスフォーマにより、互換性のないコネクション ポイントを持つ Web パーツ プロバイダと Web パーツ コンシューマを接続できるようになります。プロバイダは IWebPartRow 型のデータを提供しますが、コンシューマは String 型のデータしか受け入れません。RowToStringTransformer クラスが、必要な変換を実行します。
コード例には、プロバイダまたはコンシューマの実装が含まれていません。この例を実行するには、IWebPartRow インターフェイスを実装するプロバイダと、IString という名前のカスタマイズされたインターフェイスを通じたデータを必要とするコンシューマを作成する必要があります。
コード例の最初の部分には、プロバイダ Web パーツ コントロールおよびコンシューマ Web パーツ コントロールのコードと、トランスフォーマのコードが含まれています。
' 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
// 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); } } }
コード例の 2 番目の部分は、トランスフォーマを WebPartConnection オブジェクトの宣言構文に含める方法を示しています。
<%@ 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> <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>
<%@ 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> <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>
カスタマイズされたトランスフォーマを Web ページで使用できるようにするためには、Web.config ファイルの <transformers> セクションで指定する必要があります。コード例の 3 番目の部分は、カスタマイズされたトランスフォーマを Web.config ファイルに追加する方法を示しています。
<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>
このコード例には、ユーザーが Web パーツ ページ上で表示モードを変更できるようにするユーザー コントロールが含まれています。ユーザー コントロールのソース コードは、別のトピックのものを使用しています。ユーザー コントロール用の .ascx ファイルは チュートリアル : Web パーツ ページでの表示モードの変更 から取得でき、.aspx ページと同じフォルダ内に配置する必要があります。


System.Web.UI.WebControls.WebParts.WebPartTransformer
System.Web.UI.WebControls.WebParts.RowToFieldTransformer
System.Web.UI.WebControls.WebParts.RowToParametersTransformer


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WebPartTransformer コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WebPartTransformer メソッド

名前 | 説明 | |
---|---|---|
![]() | CreateConfigurationControl | ConnectionsZone ゾーン内でトランスフォーマを構成する ASP.NET コントロールを表示します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
![]() | Transform | 実装された場合、データ変換のためのオブジェクトを提供します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | LoadConfigurationState | SaveConfigurationState メソッドによって保存された構成状態を読み込みます。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | SaveConfigurationState | ユーザーによって設定された構成状態を ASP.NET 構成コントロールに保存します。 |

WebPartTransformer メンバ
互換性のない 2 つのコネクション ポイント間でのデータ変換を行うトランスフォーマ クラスの基本実装を提供します。
WebPartTransformer データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | CreateConfigurationControl | ConnectionsZone ゾーン内でトランスフォーマを構成する ASP.NET コントロールを表示します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | Transform | 実装された場合、データ変換のためのオブジェクトを提供します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | LoadConfigurationState | SaveConfigurationState メソッドによって保存された構成状態を読み込みます。 |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | SaveConfigurationState | ユーザーによって設定された構成状態を ASP.NET 構成コントロールに保存します。 |

Weblioに収録されているすべての辞書からWebPartTransformerを検索する場合は、下記のリンクをクリックしてください。

- WebPartTransformerのページへのリンク