RowToFieldTransformer クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > RowToFieldTransformer クラスの意味・解説 

RowToFieldTransformer クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

IWebPartRow インターフェイス実装しているプロバイダから IWebPartField インターフェイス通じてデータ受け取コンシューマへの Web パーツ接続においてデータ変換します

名前空間: System.Web.UI.WebControls.WebParts
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public NotInheritable Class
 RowToFieldTransformer
    Inherits WebPartTransformer
    Implements IWebPartField
Dim instance As RowToFieldTransformer
public sealed class RowToFieldTransformer :
 WebPartTransformer, IWebPartField
public ref class RowToFieldTransformer sealed
 : public WebPartTransformer, IWebPartField
public final class RowToFieldTransformer extends
 WebPartTransformer implements IWebPartField
public final class RowToFieldTransformer extends
 WebPartTransformer implements IWebPartField
解説解説
使用例使用例

RowToFieldTransformer オブジェクト使用して互換性のないコネクション ポイントを持つプロバイダコンシューマ接続する方法コード例次に示しますコード例最初部分は、プロバイダとして動作する Web パーツ コントロール示しますRowProviderWebPart という名前のプロバイダ クラスは、IWebPartRow インターフェイス通じてデータ提供します

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 Samples.AspNet.VB.Controls

    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.DefaultView(0))

        End Sub 'GetRowData
    End Class 'RowProviderWebPart
           

End Namespace
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 Samples.AspNet.CS.Controls
{
    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.DefaultView[0]);
        }          
    }
}

コード例2 番目の部分は、Web パーツ接続コンシューマとなる Web パーツ コントロールです。FieldConsumerWebPart という名前のコンシューマ クラスは、IWebPartField インターフェイスからデータ受け取ります

Imports System
Imports System.ComponentModel
Imports System.Reflection
Imports System.Collections
Imports System.Data
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls
    ' This sample code creates a Web Parts control that acts as 
    ' a consumer of an IField interface.

    Public Class FieldConsumerWebPart
        Inherits WebPart

        Private _provider As IWebPartField
        Private _fieldValue As Object

        Private Sub GetFieldValue(ByVal
 fieldValue As Object)
            _fieldValue = fieldValue

        End Sub 'GetFieldValue

        Protected Overrides Sub
 OnPreRender(ByVal e As EventArgs)
            If Not (_provider Is
 Nothing) Then
                _provider.GetFieldValue((New FieldCallback(AddressOf
 GetFieldValue)))
            End If
            MyBase.OnPreRender(e)

        End Sub 'OnPreRender

        Protected Overrides Sub
 RenderContents(ByVal writer As HtmlTextWriter)

            If Not (_provider Is
 Nothing) Then
                Dim prop As PropertyDescriptor
 = _provider.Schema

                If Not (prop Is
 Nothing) AndAlso Not (_fieldValue
 Is Nothing) Then
                    writer.Write(prop.DisplayName & ": "
 & _fieldValue)
                Else
                    writer.Write("No data")
                End If
            Else
                writer.Write("Not connected")
            End If

        End Sub 'RenderContents

        <ConnectionConsumer("Field")> _
        Public Sub SetConnectionInterface(ByVal
 provider As IWebPartField)
            _provider = provider

        End Sub 'SetConnectionInterface

        Private Class FieldConsumerConnectionPoint
            Inherits ConsumerConnectionPoint

            Public Sub New(ByVal
 callbackMethod As MethodInfo, _
              ByVal interfaceType As Type,
 ByVal controlType As Type, _
              ByVal name As String,
 ByVal id As String, _
              ByVal allowsMultipleConnections As
 Boolean)
                MyBase.New(callbackMethod, interfaceType, controlType,
 _
                  name, id, allowsMultipleConnections)

            End Sub 'New
        End Class 'FieldConsumerConnectionPoint
 
    End Class 'FieldConsumerWebPart
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Security.Permissions;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace Samples.AspNet.CS.Controls
{
    
    // This sample code creates a Web Parts control that acts
    // as a consumer of an IField interface.

    // A consumer WebPart control that consumes strings.
    [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    public class FieldConsumerWebPart : WebPart
    {
        private IWebPartField _provider;
        private object _fieldValue;

        private void GetFieldValue(object fieldValue)
        {
            _fieldValue = fieldValue;
        }

        public bool ConnectionPointEnabled
        {
            get
            {
                object o = ViewState["ConnectionPointEnabled"];
                return (o != null) ? (bool)o
 : true;
            }
            set
            {
                ViewState["ConnectionPointeEnabled"] = value;
            }
        }

        protected override void OnPreRender(EventArgs
 e)
        {
            if (_provider != null)
            {
                _provider.GetFieldValue(new FieldCallback(GetFieldValue));
            }
            base.OnPreRender(e);
        }

        protected override void RenderContents(HtmlTextWriter
 writer)
        {

            if (_provider != null)
            {
                PropertyDescriptor prop = _provider.Schema;

                if (prop != null &&
 _fieldValue != null)
                {
                    writer.Write(prop.DisplayName + ": " + _fieldValue);
                }
                else
                {
                    writer.Write("No data");
                }
            }
            else
            {
                writer.Write("Not connected");
            }
        }
        
        [ConnectionConsumer("Field")]
        public void SetConnectionInterface(IWebPartField
 provider)
        {
            _provider = provider;
        }

        private class FieldConsumerConnectionPoint
 : ConsumerConnectionPoint
        {
            public FieldConsumerConnectionPoint(MethodInfo callbackMethod,
 Type interfaceType, Type controlType,
                 string name, string id, bool
 allowsMultipleConnections)
                : base(callbackMethod, interfaceType, controlType
,
                       name, id, allowsMultipleConnections)
            {
            }

            public override bool GetEnabled(Control
 control)
            {
                return ((FieldConsumerWebPart)control).ConnectionPointEnabled;
            }

        }
    }
}

コード例3 番目の部分は、2 つコントロール持ち、この 2 つコントロール接続するための RowToFieldTransformer オブジェクト定義するページ示します

<%@ Page Language="VB" %>
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuVB" 
    src="~/displaymodemenuvb.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.VB.Controls"
 %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
   
</script>

<html  >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:webpartmanager id=manager runat=server>
    <staticconnections>
      <asp:WebPartConnection ID=conn1 ProviderID=rp1 ConsumerID=fc1>
        <asp:RowToFieldTransformer />
      </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 Title="provider"
 ID=rp1 runat=server />
          <wp:FieldConsumerWebPart Title="consumer"
 ID=fc1 runat=server />
        </zonetemplate>
      </asp:webpartzone>
    </td>
    <td>
      <asp:connectionszone id=connectionszone1 runat=server />
    </td>
  </tr>
  </table>
    
  </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ register tagprefix="uc1" 
    tagname="DisplayModeMenuCS" 
    src="~/displaymodemenucs.ascx" %>
<%@ Register TagPrefix="wp" 
    NameSpace="Samples.AspNet.CS.Controls" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
   
</script>

<html  >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:webpartmanager id=manager runat=server>
    <staticconnections>
      <asp:WebPartConnection ID=conn1 ProviderID=rp1 ConsumerID=fc1>
        <asp:RowToFieldTransformer FieldName="Zip Code"/>
      </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 Title="provider" ID=rp1 runat=server
 />
          <wp:FieldConsumerWebPart Title="consumer" ID=fc1 runat=server
 />
        </zonetemplate>
      </asp:webpartzone>
    </td>
    <td>
      <asp:connectionszone id=connectionszone1 runat=server />
    </td>
  </tr>
  </table>
    
  </form>
</body>
</html>

このコード例には、ユーザーWeb パーツ ページ上で表示モード変更できるようにするユーザー コントロール含まれています。ユーザー コントロールソース コードは、別のトピックのものを使用してます。チュートリアル : Web パーツ ページでの表示モード変更」からユーザー コントロール用の .ascx ファイル取得し.aspx ページと同じフォルダ配置する必要があります

.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.Web.UI.WebControls.WebParts.WebPartTransformer
    System.Web.UI.WebControls.WebParts.RowToFieldTransformer
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
RowToFieldTransformer メンバ
System.Web.UI.WebControls.WebParts 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「RowToFieldTransformer クラス」の関連用語

RowToFieldTransformer クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



RowToFieldTransformer クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS