如何在网格视图中添加单独的行以显示总计。 我的设计看起来像这样
<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>
答案 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
}
如果有任何疑问给我评论!