Asp.net 如何在gridview中显示两个表中的数据?
我正在开发一个asp.net应用程序,遇到了一些问题,所以我请求一些帮助 数据库:在我的数据库(MySql)中,我有表成分(idI、名称等),每个成分可以有一个以上的成分类型(idT、type_name等)。由于多对多关系,我有另一个表,其中包含来自配料的id和来自配料类型的id 应用程序:在我的应用程序中,我有gridview,它显示了来自配料的所有数据。我使用自己的方法FillGVComponent,使用dataset和数据适配器填充gridview 问题:如何在gridView中显示另一列,该列将使用项目符号列表显示属于配料id的所有配料类型(gridView中的每一行代表1种配料),以便输出如下所示:Asp.net 如何在gridview中显示两个表中的数据?,asp.net,gridview,Asp.net,Gridview,我正在开发一个asp.net应用程序,遇到了一些问题,所以我请求一些帮助 数据库:在我的数据库(MySql)中,我有表成分(idI、名称等),每个成分可以有一个以上的成分类型(idT、type_name等)。由于多对多关系,我有另一个表,其中包含来自配料的id和来自配料类型的id 应用程序:在我的应用程序中,我有gridview,它显示了来自配料的所有数据。我使用自己的方法FillGVComponent,使用dataset和数据适配器填充gridview 问题:如何在gridView中显示另一列
Ingredient_Type Ingredient id
--------------------------------------
-type 1* ingredient1 1
-type 2*
-type 3*
--------------------------------------
-type 5 ingredient2 2
-type 6
*成分类型必须显示在单个单元格中。上面的示例显示了gridview中的两行
我曾尝试将模板字段与项目符号列表一起使用,但我不知道如何遍历行,以便将成分id传递给项目符号列表数据源的sql语句。您的思路是正确的。
模板字段中的A是正确的方法。但是您应该使用GridView将其绑定到它的数据源
。看看:
protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow) {
var rowView = (DataRowView)e.Row.DataItem;
var bullet = (BulletedList)e.Row.FindControl("BulletedList1");
// now get the DataSource according to the ID (f.e. rowView["Ingredient_ID"])
bullet.DataSource = getIngredientTypes(rowView["Ingredient_ID"]);
bullet.DataTextField = "Ingredient_Type";
bullet.DataValueField = "Type_ID";
bullet.DataBind();
}
}