如何将Footer添加到Gridview

时间:2013-06-03 06:27:09

标签: c# asp.net gridview

如何在网格视图中添加单独的行以显示总计。 我的设计看起来像这样 image description here

<asp:GridView ID="detailsGrid" runat="server" AllowPaging="True" AllowSorting="True"
                AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None"
                BorderColor="#2B80FF" BorderStyle="Solid" BorderWidth="1px" Width="100%" OnPageIndexChanging="detailsGrid_PageIndexChanging">
                <Columns>

                    <asp:BoundField HeaderText="Invoices Amount ($)" DataField="InvoiceAmount" />
                    <asp:BoundField DataField="ReceivedAmount" HeaderText="Received Amount($)" />
                    <asp:BoundField HeaderText="Balance Amount($)" DataField="BalanceAmount" />
                    <asp:BoundField HeaderText="Consumers Name" DataField="ConsumerEmailID" />
                </Columns>                    
                <EditRowStyle BackColor="#2461BF" />
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#b3b3b3" Font-Bold="True" ForeColor="White" HorizontalAlign="Left" />
                <PagerStyle BackColor="#B8C9EA" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />

            </asp:GridView>

2 个答案:

答案 0 :(得分:1)

使用页脚模板:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.templatefield.footertemplate.aspx

该链接包含一个示例,显示如何添加总字段。基本上:

<asp:templatefield headertext="Total"
            itemstyle-horizontalalign="Right"
            footerstyle-horizontalalign="Right"
            footerstyle-backcolor="Blue"
            footerstyle-forecolor="White">
            <itemtemplate>
              <%#Eval("Total", "{0:c}") %>
            </itemtemplate>
            <footertemplate>
              <asp:label id="OrderTotalLabel"
                runat="server"/>
            </footertemplate>
          </asp:templatefield>

同时:

void OrderGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
  {

    if (e.Row.RowType == DataControlRowType.DataRow)
    {

      // Get the cell that contains the item total.
      TableCell cell = e.Row.Cells[2];

      // Get the DataBoundLiteralControl control that contains the 
      // data-bound value.
      DataBoundLiteralControl boundControl = (DataBoundLiteralControl)cell.Controls[0];

      // Remove the '$' character so that the type converter works properly.
      String itemTotal = boundControl.Text.Replace("$",  "");

      // Add the total for an item (row) to the order total.
      orderTotal += Convert.ToDecimal(itemTotal);

    }

  }

答案 1 :(得分:1)

使用页脚行

检查此链接  http://www.aspdotnet-suresh.com/2011/02/how-to-display-sum-of-columns-total-in.html

RowDataBind事件中检查页脚如下

float _total;
protected void grdv_cart_RowDataBound(object sender, GridViewRowEventArgs e)
{
 if (e.Row.RowType == DataControlRowType.DataRow)
 {
  DataRow dr = ((DataRowView)e.Row.DataItem).Row;
  float itemPrice = float.Parse(dr["ItemPrice"].ToString());
  _total += itemPrice;
 }
if (e.Row.RowType == DataControlRowType.Footer)
{
  //here write the totals into labels
}

如果有任何疑问给我评论!