求教各位大虾:
我现在有个GridView里面总共有5列
其中前三列为在数据库里捞出来的,后两列要根据前三列的Footer值计算出来
请问怎么来填充最后两列的值:
计算公式:
第四列第一行=第二列第一行/第二列Footer
cell[4,1]=cell[2,1]/第二列Footer
cell[4,1]=7952.25/8987.88以此类推:
cell[4,2]=627.13/8987.88
Footer的值是在RowDataBound事件中一行一行加总起来的
请问有什么方法可以实现我的需求?
GridViewasp.netC#

解决方案 »

  1.   


    有木有办法直接对GridView进行操作呢?
      

  2.   

    Refer:
    http://www.cnblogs.com/insus/archive/2013/03/22/2975824.html或是在数据库中,实现。
    创建一个临时表,表结构与你想显示的结构一样。
    处理好数据,再填充这个临时表中。
    最后
    select * from temp_table
      

  3.   

    看来大家都还是建议我在数据库里实现?有没有办法直接在GridView里面实现啊?
      

  4.   


    在程序中,也是可以的。
    需要创建两个模版列。
    在OnRowDataBound事件处理。可以参考Repeater的实现:
    http://www.cnblogs.com/insus/archive/2013/03/22/2975824.html
      

  5.   

    也可以自己拼接一个统计的DIV在GridView下面就行了。
    外观看着在一个“表格”内就OK了。
      

  6.   

    果图      protected void Page_Load(object sender, EventArgs e)
            {
                GridView1.DataSource = TM.DBUtility.DbHelperSQL.GetDataTable("select * from Table_1");
                GridView1.DataBind();
            }
     
            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if (e.Row.RowIndex >= 0)
                    e.Row.Cells[0].Text = (int.Parse(e.Row.Cells[1].Text) * 3 + int.Parse(e.Row.Cells[3].Text) * 5).ToString();
            }
    前台 
     <asp:GridView ID="GridView1" runat="server" 
                onrowdatabound="GridView1_RowDataBound">
                <Columns>
                    <asp:TemplateField HeaderText="折合页(id*3+answer*5)" ></asp:TemplateField>
                </Columns>
            </asp:GridView> 
      

  7.   

    GridView1_RowDataBound中加
              if (e.Row.RowIndex >= 0)
                    e.Row.Cells[0].Text = (int.Parse(e.Row.Cells[1].Text)/int.Parse(e.Row.Cells[2].Text)).ToString();
      

  8.   

    gridview应该是绑的datatable的数据源吧?那就在datatable绑定前对他处理后再绑定啊
      

  9.   


    float 流失工时=0.00;
    foreach(DataRow dr in dt.rows){
    流失工时+=float.parse(dr["流失工时"].tostring());//获取总的时间了
    }
    foreach(DataRow dr in dt.rows){
    dr["占停机总时比例"]=(float.parse(dr["停机工时"].tostring())/流失工时).tostring();
    ...
    }
    gridview.datasource=dt;
    gridview.databinding();代码大概就是这样