GridView 利用 <asp:BoundField 计算总合;并在页面不展现

来源:互联网 发布:linux more命令查看 编辑:程序博客网 时间:2024/05/27 14:15

---------------------------------------------------- GridView 利用 <asp:BoundField 计算总合;并在页面不展现----------------------------------------------------
<asp:GridView ID="ReportView" runat="server" AutoGenerateColumns="False" GridLines="None" OnRowDataBound="ReportView_RowDataBound" ShowFooter="True" OnRowCreated="ReportView_RowCreated">
      <Columns>
      <asp:BoundField DataField="SN" HeaderText="sssssssssss"/>
      <asp:BoundField DataField="RegName" HeaderText="sssssssss" />
      <asp:TemplateField HeaderText="sssssss">
        <ItemTemplate><%# Convert.ToDateTime(Eval("BeginTime")).ToString("yyyy-MM-dd HH:mm")%></ItemTemplate>
      </asp:TemplateField>
      <asp:TemplateField HeaderText="eeee">
        <ItemTemplate><%# Convert.ToDateTime(Eval("EndTime")).ToString("yyyy-MM-dd HH:mm")%></ItemTemplate>
      </asp:TemplateField>
      <asp:BoundField DataField="NormalOverTotalTime" HeaderText="aaaaaa" />
     <%-- <asp:TemplateField HeaderText="ccccc">
        <ItemTemplate><%#Eval("NormalOverTotalTime").ToString() == "" ? "0" : Eval("NormalOverTotalTime").ToString()%>分钟</ItemTemplate>
      </asp:TemplateField>--%>
      <asp:TemplateField HeaderText="cccccc">
        <ItemTemplate><a href="Detail.aspx?ObjID=<%# Server.UrlEncode(Eval("ObjID").ToString())%>&amp;ddate=<%# Server.UrlEncode(this.dDate.Value.ToString())%>&amp;edate=<%# Server.UrlEncode(this.eDate.Value.ToString())%>&amp;rtype=0" target="_blank"><%#Eval("NormalOverDegree").ToString() == "" ? "0" : Eval("NormalOverDegree").ToString()%></a></ItemTemplate>
      </asp:TemplateField>
       <asp:BoundField DataField="HighOverTotalTime" HeaderText="ccccccccccc" />
      <%--<asp:TemplateField HeaderText="ccccccccccc">
        <ItemTemplate><%#Eval("HighOverTotalTime").ToString() == "" ? "0" : Eval("HighOverTotalTime").ToString()%>分钟</ItemTemplate>
      </asp:TemplateField>--%>
      <asp:TemplateField HeaderText="sdssssss">
        <ItemTemplate><a href="Detail.aspx?ObjID=<%# Server.UrlEncode(Eval("ObjID").ToString())%>&amp;ddate=<%# Server.UrlEncode(this.dDate.Value.ToString())%>&amp;edate=<%# Server.UrlEncode(this.eDate.Value.ToString())%>&amp;rtype=1" target="_blank"><%#Eval("HighOverDegree").ToString() == "" ? "0" : Eval("HighOverDegree").ToString()%></a></ItemTemplate>
      </asp:TemplateField>
     
      <asp:BoundField DataField="NormalOverDegree" HeaderText="">
     <ItemStyle Width="0px" />

      </asp:BoundField>
    
      <asp:BoundField DataField="HighOverDegree" HeaderText=""/>
      </Columns>
              <RowStyle CssClass="tr1" />
        <AlternatingRowStyle CssClass="tr0" />
    </asp:GridView>


  public int TotalNormalOverTotalTime = 0;
    public int TotalNormalOverDegree = 0;
    public int TotalHighOverTotalTime = 0;
    public int TotalHighOverDegree = 0;

   //先利用列计算值;
    protected void ReportView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowIndex >= 0)
        {
            if (!"".Equals(e.Row.Cells[4].Text) && !"&nbsp;".Equals(e.Row.Cells[4].Text))
            {
                TotalNormalOverTotalTime += Convert.ToInt32(e.Row.Cells[4].Text);
            }

            if (!"".Equals(e.Row.Cells[6].Text) && !"&nbsp;".Equals(e.Row.Cells[6].Text))
            {

                TotalHighOverTotalTime += Convert.ToInt32(e.Row.Cells[6].Text);
            }

            if (!"".Equals(e.Row.Cells[8].Text) && !"&nbsp;".Equals(e.Row.Cells[8].Text))
            {
                TotalNormalOverDegree += Convert.ToInt32(e.Row.Cells[8].Text);
            }

            if (!"".Equals(e.Row.Cells[9].Text) && !"&nbsp;".Equals(e.Row.Cells[9].Text))
            {

                TotalHighOverDegree += Convert.ToInt32(e.Row.Cells[9].Text);
            }
        }
        else if (e.Row.RowType == DataControlRowType.Footer)
        {
            e.Row.Cells[3].Text = "合 计:";
            e.Row.Cells[4].Text = TotalNormalOverTotalTime.ToString();
            e.Row.Cells[5].Text = TotalNormalOverDegree.ToString();
            e.Row.Cells[6].Text = TotalHighOverTotalTime.ToString();
            e.Row.Cells[7].Text = TotalHighOverDegree.ToString();

        }

      
    }

    //隐藏不显示的列;
    protected void ReportView_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header)
        {
            e.Row.Cells[8].Visible = false;
            e.Row.Cells[9].Visible = false;
        }
    }

原创粉丝点击