0

我一直在寻找一种方法来控制出现在 GridView 的特定列中的文本。

例如,考虑一个包含两个表 Student 和 Class 的数据库。

  1. 我想在GridView中添加一个列,打印出数据库中的所有学生,该列将显示学生的班级名称,怎么做?(我通常可以打印 ClassId,因为它是学生表中的 FK)

  2. 我想在打印所有班级的 GridView 中添加一列,该列将计算每个班级的学生人数,我该怎么做?

4

1 回答 1

0

1-您可以简单地使用内部联接或存储过程来获取查询中所需的所有数据旁边的类名。

2-不止一种方法可以做你想做的事:

例如: 您可以在数据表中添加一列(空列),稍后通过Sum()在查询中使用聚合函数填充它。

        DataTable result_dt = DAL_Helper.Return_DataTable(sqlSelect);//your original query
        result_dt.Columns.Add("NumberOfStudent");
        result_dt.Columns["NumberOfStudent"].DataType = typeof(string);
        result_dt.Columns["NumberOfStudent"].MaxLength = 255;

        if (result_dt.Rows.Count > 0)
        {
            for (int i = 0; i < result_dt.Rows.Count; i++)
            {
               //Here u can fill your new empty column.
            }
        }
        result_dt.AcceptChanges();

返回自定义数据表(作为数据源)后,可以将其绑定到网格视图。

另一种解决方案:在网格视图中添加一个空列,RowDataBound 如果是网格视图,您可以通过一些循环填充此列,您可以使用它LINQ来帮助您获得总和。

于 2011-05-08T14:07:45.367 回答