[GridView]在footer加上某欄的Total合計

  • 20785
  • 0
  • 2008-12-29

[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/