看过此篇《ASP.NET网页动态添加数据行》 http://www.cnblogs.com/insus/p/3247935.html的网友,也许明白Insus.NET是怎样实现动态添加数据行的功能。其实也没有动态添加,只是使用另外一种方法,添加一些临时记录,再使用GridView控件来显示这些记录而已。
在演示中,只是实现添加,没有实现更新数据,删除数据等功能。 再加上有网友看到后,在评论中提出另外的要求,要有记录统计功能。因此Insus.NET再列举另外相似的例子,来完善这些功能。
比如数据库的表有这些字段[Goods_nbr],[Goods_Desc],[Units],[Price],[Quantity]。但是页面或是报表需要,我们有时会得添加另外一些附加字段,如此例中Insus.NET有添加了一个[Amount],将是用来计算每行记录的小计。
根据上面一篇,Insus.NET也只作为参考而已,大可以修改。
上图中高亮部分的属性,在数据库中,最终存储的表,并没有此字段,此字段只是网页时显示使用得到。
上面的对象,即是每商品。我们还要写一个集合,是临时存储商品对象。
把临时记录绑事定至的物件,先在.aspx网页写:
看到否,在GridView控件最后一列,由于数据表中没有此字段,因此手动添加此列。
<asp:TemplateField> <HeaderStyle Width="100" /> <ItemStyle Width="100" /> <FooterStyle Width="100" /> <HeaderTemplate>Amount</HeaderTemplate> <ItemTemplate> <%# Eval("Amount") %> </ItemTemplate> <FooterTemplate> <asp:Label ID="LabelSumAmount" runat="server" Text=""></asp:Label> </FooterTemplate> </asp:TemplateField>
写一个属性,是用Session来存储Orders对象。并为前台的GridView绑定数据:
还在写OnRowDataBound事件,实现每小行一个小计,最后是在GridView控件FooterTemplate做一个列总计。
添加铵钮事件:
更新铵钮事件:
删除铵钮事件:
看看效果: