c#使用asp.net显示gridview页脚中的总列数

时间:2017-08-21 12:01:29

标签: c# css asp.net gridview

我需要使用C#在ASP.Net中的 GridView页脚中显示总列数(总计)。

我有两个问题:

  1. 我无法在 GridView页脚中应用css样式;
  2. 我有错误
  3.   

    指定的演员表无效。

    添加Tot2的总和。

    如何解决这个问题?

    感谢您提前寻求帮助。

    这是SQL查询:

            sql = " SELECT ZN, ";
            sql += "    IFNULL(Tot1,0) AS Tot1, ";
            sql += "    IFNULL(Tot2,0) AS Tot2 ";
            sql += " FROM ";
            sql += "    doTable ";
            sql += " ORDER BY ";
            sql += "    Tot1 DESC; ";
    
    +----+------+------+
    | Zn | Tot1 | Tot2 |
    +----+------+------+
    | ZO |    3 |    0 |
    | ZO |    3 |    0 |
    | ZO |    2 |    1 |
    | ZO |    2 |    0 |
    | ZO |    2 |    0 |
    | ZO |    2 |    0 |
    | ZO |    2 |    0 |
    | ZO |    1 |    0 |
    | ZO |    1 |    1 |
    | ZO |    1 |    0 |
    +----+------+------+
    10 rows in set
    

    这是代码隐藏

    OdbcDataAdapter adapter = new OdbcDataAdapter(command);
    adapter.Fill(dsProducts);
    
    gvProducts.Columns[1].FooterText = "Total";
    gvProducts.Columns[2].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
    gvProducts.Columns[2].ItemStyle.CssClass = "ddl_Class_new";
    gvProducts.Columns[2].FooterText = dsProducts.Tables[0].AsEnumerable().Select(x => x.Field<Int32>("Tot1")).Sum().ToString();
    
    gvProducts.Columns[3].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
    gvProducts.Columns[3].ItemStyle.CssClass = "ddl_Class_new";
    gvProducts.Columns[3].FooterText = dsProducts.Tables[0].AsEnumerable().Select(x => x.Field<Int32>("Tot2")).Sum().ToString();
    

1 个答案:

答案 0 :(得分:0)

首先,使用FooterStyle.CssClass

设置页脚的css
gvProducts.Columns[3].FooterStyle.CssClass = "ddl_Class_new";

指定演员表示Tot1Tot2中的字段无法转换为Int32。可能是因为您在查询中使用IFNULL,如果您使用MS SQL,请将其更改为ISNULL,或者检查aspnet中的数据是否是您通过调试实际预期的数据。