编辑 GridView 列的代码 asp.net

发布于 2024-11-06 01:34:30 字数 252 浏览 3 评论 0原文

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

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

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

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

I've been looking for a way to control the text that appears in a particular column of a GridView.

For example consider a database with two tables Student and Class.

  1. I want to add a column to the GridView which print out all the students in the Database, the column will show the student's class name, how can do it? (I can normally print the ClassId since its a FK in the student table)

  2. I want to add a column to the GridView which print all the classes, the column will count the number of students in each class, how can I do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

她比我温柔 2024-11-13 01:34:30

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 来帮助您获得求和。

1- You can do that simply with inner join or a stored procedure to get the class name beside all the data you need in your query.

2- More than one way to do what you want:

For example:
you can add a column to your data table (empty column ), and fill it later through using Sum() aggregate function in a query.

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

After you return your customized data table(as a data source), you can bind it to the grid view.

Another solution : add an empty column to the grid view and in the RowDataBound event of the grid view you can fill this column through some loop and you can use LINQ to help you in getting the summation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文