2

Web アプリケーション全体で使用するユーザー コントロールがあります。をテーブルで返しList<Person>ます。現在、リストに表示されるプロパティは (コードによって) 固定されています。

コントロールを変更して、プロパティのリストを受け入れるようにします。これを使用してPerson、選択したプロパティのみが表示されるように、これらのオブジェクト (タイプ ) のテーブルをレンダリングします。

これは反射を使用してのみ可能ですか?これを達成するための最良のルートは何ですか。

オブジェクト:

Class Person{
  Name{get;set;}
  Age{get;set;}
  Address{get;set;}
  Role{get;set;}
  AnotherProperty{get;set;}
}

ユーザーコントロールは Person のリストを取得し、その結果を(リピーターを介して)プレーンな html テーブルに表示します。ここで、この html テーブルに表示されるプロパティでユーザーコントロールをカスタマイズできるようにしたいと考えています。次のようにユーザーコントロールを使用したい:

<uc:PersonSearchList runat="server" ID="someId" ShowProperties="Name, Address, Role" />

またはコードビハインドで設定:

PropertyInfo[] ShowProperties = Person.GetType().GetProperties();
4

1 に答える 1

0

いくつかの方法でこれを行うことができます。2つお見せします。

まず、ユーザー コントロールでパブリック プロパティを作成できます。次に、コード ビハインドで、次のようにリストをプロパティに追加します。

ユーザー コントロール:

Partial Class user_controls_myControl
    Public newList As List(Of myList)

    'do your other suff
end Class

ASPX ページ:

dim nameOfList as new List(of String)
me.myControl1.newList = nameOfList

または、パブリック メソッドに追加することもできます。

Partial Class user_controls_myControl
    Public Sub bindData(ByVal commentList As List(Of CDTrialNotification))
       'attach to your gridviews here
    end sub
end Class

ASPX ページ:

   dim myList as new List(of String)
   me.myControl1.bindData(myList)
于 2013-03-04T20:08:39.917 に答える