我有一个用户控件,我在整个Web应用程序中使用它。它在表格中返回List<Person>
。目前,列表中显示的属性是固定的(按代码)。
我想更改控件,以便它接受一个属性列表,然后用于呈现那些对象(类型为Person
)的表,只显示所选属性。
这只能使用反射吗?实现这一目标的最佳途径是什么。
对象:
Class Person{
Name{get;set;}
Age{get;set;}
Address{get;set;}
Role{get;set;}
AnotherProperty{get;set;}
}
usercontrol只获取Person列表并在一个普通的html表中显示结果(通过转发器)。 现在我希望usercontrol可以自定义,在这个html表中显示哪些属性。我希望usercontrol如下使用:
<uc:PersonSearchList runat="server" ID="someId" ShowProperties="Name, Address, Role" />
或设置在代码后面:
PropertyInfo[] ShowProperties = Person.GetType().GetProperties();
答案 0 :(得分:0)
你可以通过几种方式来做到这一点。我告诉你两个。
首先,您可以在用户控件中创建公共属性。然后,在后面的代码中,将列表添加到属性中,如下所示:
用户控制:
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)