广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    ASP.NET中为DataGrid添加合计字段

    2018-04-08 09:04:52 次阅读 稿源:互联网
    广告

      论坛中最常见的一个问题是:“ 我怎样在 DataGrid 中显示列合计?”。 我亲自多次为这个问题提供了示例代码,因此,我想在DotNetJunkies 的标题中提供这么一份指南。 在这份指南中你将会学到怎样在 DataGrid 中编程实现对某一列的值进行统计,并在 DataGrid 的页脚中显示其合计值。这份指南中供下载的示例中包括了 C# 和 Visual Basic.NET 两种代码。

      这份指南的最终结果看起来像这样:

      从上图可看出:

      上面所用到的屏幕图片中的 DataGrid 是一个非常典型的 DataGrid 。有许多控制 DataGrid 外观的属性,它使用两个 BoundColumns 来操作数据,但这并不是最重要的。做好这项工作真正重要的是使用 DataGrid.OnItemDataBound 事件。这个事件将会触发每次绑定一条记录到 DataGrid。你可以为这个事件创建一个事件处理,以操作数据记录。在这种情况下,你将会得到运行时 Price 列的合计值。

      页脚指的是数据范围的最后一行。当这行被限定时,在事件句处理你可以得到 Price 列的运行时统计值。

      实施:

      首先让我们找到一种方法来操作 Web 窗体输出。 这份指南中,你将使用一个 Web 窗体 (calcTotals.aspx) 以及一个类代码文件 (calcTotals.aspx.cs)。这份指南的意图是, 类代码将会使用 Just-In-Time 编译器来编译。 这里是 calcTotals.aspx 的代码:

      

    <%@ Page Inherits="myApp.calcTotals" Src="20010731T0101.aspx.cs" %><html><body bgcolor="white"><asp:DataGrid id="MyGrid" runat="server"AutoGenerateColumns="False"CellPadding="4" CellSpacing="0"BorderStyle="Solid" BorderWidth="1"Gridlines="None" BorderColor="Black"ItemStyle-Font-Name="Verdana"ItemStyle-Font-Size="9pt"HeaderStyle-Font-Name="Verdana"HeaderStyle-Font-Size="10pt"HeaderStyle-Font-Bold="True"HeaderStyle-ForeColor="White"HeaderStyle-BackColor="Blue"FooterStyle-Font-Name="Verdana"FooterStyle-Font-Size="10pt"FooterStyle-Font-Bold="True"FooterStyle-ForeColor="White"FooterStyle-BackColor="Blue"OnItemDataBound="MyDataGrid_ItemDataBound"ShowFooter="True"><Columns><asp:BoundColumn HeaderText="Title" DataField="title" /><asp:BoundColumn HeaderText="Price" DataField="price"ItemStyle-HorizontalAlign="Right"HeaderStyle-HorizontalAlign="Center" /></Columns></asp:DataGrid></body></html> 

      在 Web 窗体中你使用 @ Page 来直接声明这个页所继承的类代码。SRC 属性指明了类代码将使用 JIT 编译器来编译。 Web 窗体中的大部分代码样式声明用来使 DataGrid 外观变得更好看。

      最后指定的属性之一是 OnItemDataBound 属性。这个事件将会在 OnItemDataBound 事件发生时被触发。

      Web 窗体中的 DataGrid (MyGrid) 包含有两个 BoundColumns,一个是 Title ,另一个是Price。 这里将显示 Pubs 数据库(SQL Server)中 Titles 表的 title 及 price 列。

      忽略代码的定义

      类代码在所有的地方都将使用。在类代码中,你可以操作两个事件:Page_Load 事件以及 MyGrid_OnItemDataBound 事件。还有一个私有方法 CalcTotal, 用它来简单的完成运行时统计的数学运算。

      类代码基本结构块的起始部分:

      

    using System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Data;using System.Data.SqlClient;namespace myApp{ public class calcTotals : Page {  protected DataGrid MyGrid;  private double runningTotal = 0; }}

      在类代码的基本结构中,你必须使用相关语句导入名字空间(namespace)。在类声明中,你声明了两个变量,一个是类代码中映射 Web 窗体的 DataGrid(MyGrid)控件的变量;一个是用来操作 DataGrid 的 Price 列中运行时统计的双精度值。

      Page_Load 事件

      在 Page_Load 事件中,你所要做的就是连接到 SQL Server 并执行一个简单的 SqlCommand。 你取得了所有 Price 值>0 的 title 和 price 数据。你使用 SqlCommand.ExecuteReader 方法返回一个 SqlDataReader 并将其直接绑定到 DataGrid (MyGrid)。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告