[GridView]在footer加上某欄的Total合計
在使用GridView的時候,常需要針對某一欄進行合計或平均等運算。
這個時候只需要在需要的欄位底下加上FooterText或footertemplate,再去bind對應的欄位資料,或呼叫function即可。
aspx上,GridView的設定如下:
<asp:GridView ID="GridView1" ShowFooter="true" DataKeyNames="Id" AutoGenerateColumns="false"
runat="server" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="Id" HeaderText=" Id" />
<asp:BoundField DataField="Name" FooterText="合計" HeaderText="Name" />
<asp:TemplateField HeaderText="Unit Price" FooterStyle-Font-Bold="True">
<ItemTemplate>
<%# GetUnitPrice(decimal.Parse(Eval("UnitPrice").ToString())).ToString("N2") %>
</ItemTemplate>
<FooterTemplate>
<%# GetTotal().ToString("N2") %>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
可直接在aspx上註冊所需之function:(如果為Code Behind,記得要加上public)
<script runat="server">
decimal TotalUnitPrice;
decimal GetUnitPrice(decimal Price)
{
TotalUnitPrice += Price;
return Price;
}
decimal GetTotal()
{
return TotalUnitPrice;
}
</script>
以此類推,要達到計算平均值或特殊的資料,只需要修改function內容即可。
PS:此範例還沒對Data為Null做處理。
blog 與課程更新內容,請前往新站位置:http://tdd.best/