Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在gridview中显示两个表中的数据?_Asp.net_Gridview - Fatal编程技术网

Asp.net 如何在gridview中显示两个表中的数据?

Asp.net 如何在gridview中显示两个表中的数据?,asp.net,gridview,Asp.net,Gridview,我正在开发一个asp.net应用程序,遇到了一些问题,所以我请求一些帮助 数据库:在我的数据库(MySql)中,我有表成分(idI、名称等),每个成分可以有一个以上的成分类型(idT、type_name等)。由于多对多关系,我有另一个表,其中包含来自配料的id和来自配料类型的id 应用程序:在我的应用程序中,我有gridview,它显示了来自配料的所有数据。我使用自己的方法FillGVComponent,使用dataset和数据适配器填充gridview 问题:如何在gridView中显示另一列

我正在开发一个asp.net应用程序,遇到了一些问题,所以我请求一些帮助

数据库:在我的数据库(MySql)中,我有表成分(idI、名称等),每个成分可以有一个以上的成分类型(idT、type_name等)。由于多对多关系,我有另一个表,其中包含来自配料的id和来自配料类型的id

应用程序:在我的应用程序中,我有gridview,它显示了来自配料的所有数据。我使用自己的方法FillGVComponent,使用dataset和数据适配器填充gridview

问题:如何在gridView中显示另一列,该列将使用项目符号列表显示属于配料id的所有配料类型(gridView中的每一行代表1种配料),以便输出如下所示:

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();
    }
}