一个gridview - 两个数据源?

时间:2008-10-31 16:47:28

标签: asp.net gridview datasource

我正在一个同事网站上工作,他错误地提出了一个显示TypeID而不是TypeName的gridview。我想把这个类型的实际名称,而不是它的任意ID号,就像他拥有它一样。我看到他在页面上有两个“ObjectDataSource” - 一个用于Type,一个用于Item。 Items包含项目类型的ID,它们都在Items数据源中。他正在提取此ID以填充gridview。我想使用该ID从其他数据源中提取NAME,并将该NAME放入该特定列的gridview中。可以这样做吗?我可以在gridview上使用两个不同的数据源吗?

1 个答案:

答案 0 :(得分:4)

如果我理解这一点,你所拥有的是两个执行此操作的数据源:

1) SELECT ID, Item, ItemTypeID FROM Item
2) SELECT ID, ItemType FROM ItemTypes 

您想要在网格中显示项目名称和项目类型。

如果您可以在网格上使用这两个来源,请回答您的基本问题:是的。但这不是执行操作的最有效方法,因为您需要在第一个数据源中为第一个数据源行走。

更好的方法是将两个数据源连接在一起,只有一个。

将第一个datasrouce的SELECT语句修改为以下行:

SELECT i.ID, i.Item, t.ItemType FROM Item i INNER JOIN ItemTypes t ON i.ItemTypeId = t.ID;