如何使用IListSource,IEnumerable或IDataSource

时间:2011-10-31 19:44:07

标签: .net asna-visual-rpg

我搜索了Google和StackOverflow的答案 - 找到了相关主题,包括有关similr标题的问题,但它们似乎有点过头或不清楚。

我正在尝试将对象分配为Grid的数据源。我可以通过创建一个表并按如下方式编写值来实现:

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解释我需要做什么来将它转换为可以绑定到datagrid的类型,从而使我无法创建表吗?

1 个答案:

答案 0 :(得分:1)

您的代码在问题方面有些混乱。您循环遍历ORD_Array中的所有记录,但随后在每个循环上分配网格的数据源。此外,您已将问题标记为VB.Net,但您使用的是一些我无法识别的语法。

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

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

以答案更新:

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