0

我已经在 Google 和 StackOverflow 上搜索了答案 - 找到了相关主题,包括标题类似的问题,但它们似乎有点超出我的想象或不清楚。

我正在尝试将对象分配为网格的数据源。我可以通过创建一个表并这样编写值来做到这一点:

Do FromVal( 0 ) ToVal( ORD_Array.OrderList.Length - 1 ) Index( IX )  
ORD_Record = ORD_Array.OrderList[IX]  
Ord_BLTz00 = ORD_Record.BLTz00  
Ord_ORDz00 = ORD_Record.ORDz00  
Ord_BLTA00 = ORD_Record.BLTA00  
Ord_SHPA00 = ORD_Record.SHPA00  
Ord_SNAM00 = ORD_Record.SNAM00  

GridView1.DataSource = OrderMem.Dataset.Tables["OrdMf"]  
GridView1.DataBind()  
EndDo  

这可行,但我确信我可以直接将 ORD_Record 指定为数据源,除非首先将其转换为有效类型 - 否则我会收到错误消息。有人可以解释一下我需要对 ORD_Record 做什么以将其转换为可以绑定到数据网格的类型,从而使我免于创建表吗?

4

1 回答 1

1

您的代码在这个问题上有些令人困惑。您正在遍历 ORD_Array 中的所有记录,然后在每个循环上分配网格的数据源。此外,您已将问题标记为 VB.Net,但您使用了一些我不认识的语法。

但是,如果您希望 ORD_Array 中的每条记录都出现在网格中,那么您需要做的是将 GridView1 Dataxxx 命令移出循环并将 DataSource 分配给 ORD_Array(这可能实现 IEnumerable)。

如果您只想将 ORD_Records 之一分配给网格,那么您将需要确定如何识别应该显示数组中的哪一个,将其从数组中提取到 IEnumerable 源中(您可以使用通用列表或甚至是 ArrayList),然后将其分配为 GridView 的 DataSource。

更新答案:

您也可以尝试首先将 ORD_Array.OrderList 直接分配给数据源,以防它是可枚举的。

于 2011-10-31T22:26:05.783 回答