GridView页脚添加合计字段的两种方法
2013-02-14 10:12 neohdy 阅读(481) 评论(0) 编辑 收藏 举报第一种:直接在aspx中实现
<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>
<script runat="server"> decimal TotalUnitPrice; decimal GetUnitPrice(decimal Price) { TotalUnitPrice += Price; return Price; } decimal GetTotal() { return TotalUnitPrice; } </script>
第二种方式:在cs文件中实现
int totalNumber, iNumber; double totalMoney, iMoney; protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.EmptyDataRow) { DataRowView drvBasicCountInfor = (DataRowView)e.Row.DataItem; iNumber = Convert.ToInt32(drvBasicCountInfor[7]); iMoney = Convert.Double(drvBasicCountInfor[8]); //生成总计 totalNumber += iNumber; totalMoney += iMoney; } if(e.Row.RowType == DataControlRowType.Footer) //页脚 { e.Row.Cells[6].Text = "总计"; e.Row.Cells[7].Text = string.Format("商品种类:{0}",totalNumber); e.Row.Cells[8].Text = string.Format("合计金额:{0}",totalMoney); } }
需要设置GridView的ShowFooter=true .