长话短说我必须使用动态数据(包括动态列)填充网格。将radgrid(telerik工具)绑定到匿名类型列表时,这是可能的。但我需要从数据库中读取的项目中为匿名对象添加属性。
Dim grdds2 = (From grd As PeerReviewReportByCategoryItems In GetPRReportByCategory(dpkStartDate.SelectedDate, dpkEndDate.SelectedDate, "")
Select New With {
.CategoryName = grd.CategoryName,
.Total = grd.TotalCount,
.CategoryID = grd.CategoryID,
.Test = grd.RadiologistCountsString}
)
RadGrid1.DataSource = grdds2
例如,我在这里创建一个匿名类型并将其绑定到网格,效果很好。
但是现在我需要使用从数据库中读取的名称/值向匿名类型添加属性。
这可能吗?
答案 0 :(得分:1)
创建ExpandoObject
(假设您使用的是.NET 4),而不是创建匿名类型。那个设计专门用于“我想动态设置一堆属性”。
如果您事先知道属性名称,只需像使用任何其他动态类型一样使用它。当您想通过变量值访问它们时(例如从数据库中读取),只需将其转换为IDictionary(Of Object, Of Object)
即可设置/获取值。
编辑:正如评论中所述,这是否正确(并自动)绑定到网格将取决于RadGrid是否支持动态类型。有一些方法可以找出动态提供的属性,但是否是另一回事。