aspx文件
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
<%
@ Page Inherits="myApp.calcTotals" Src="" %>
<!--自己改一下src-->
<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">
<!--在footer中显示合计-->
<Columns>
<asp:BoundColumn HeaderText="Title" DataField="title" />
<asp:BoundColumn HeaderText="Price" DataField="price"
ItemStyle-HorizontalAlign="Right"
HeaderStyle-HorizontalAlign="Center" />
</Columns>
</asp:DataGrid>
</body>
</html>下面给出vb.net和C#两种代码
vb.net
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Data
Imports System.Data.SqlClient
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
Namespace myAppNamespace myApp
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Public Class calcTotalsClass calcTotals : Inherits Page
Protected MyGrid As DataGrid
Private runningTotal As double = 0
![](/Images/OutliningIndicators/InBlock.gif)
'定义合计变量
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Private Sub CalcTotal()Sub CalcTotal(_price As String)
'求和
Try
runningTotal += Double.Parse(_price)
Catch
' 空值
End Try
End Sub
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Public Sub MyDataGrid_ItemDataBound()Sub MyDataGrid_ItemDataBound(sender As Object, e As DataGridItemEventArgs)
![](/Images/OutliningIndicators/InBlock.gif)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
![](/Images/OutliningIndicators/InBlock.gif)
CalcTotal( e.Item.Cells(1).Text )
'循环执行求和程序
e.Item.Cells(1).Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells(1).Text))
![](/Images/OutliningIndicators/InBlock.gif)
Elseif(e.Item.ItemType = ListItemType.Footer )
![](/Images/OutliningIndicators/InBlock.gif)
e.Item.Cells(0).Text="Total"
e.Item.Cells(1).Text = string.Format("{0:c}", runningTotal)
End If
End Sub
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
Protected Sub Page_Load()Sub Page_Load(sender As object, e As EventArgs)
Dim myConnection As New SqlConnection("server=Localhost;database=pubs;uid=sa;pwd=")
Dim myCommand As New SqlCommand("SELECT title, price FROM Titles WHERE price > 0", myConnection)
Try
![](/Images/OutliningIndicators/InBlock.gif)
myConnection.Open()
MyGrid.DataSource = myCommand.ExecuteReader()
MyGrid.DataBind()
myConnection.Close()
![](/Images/OutliningIndicators/InBlock.gif)
Catch ex As Exception
![](/Images/OutliningIndicators/InBlock.gif)
' 有错误发生
HttpContext.Current.Response.Write(ex.ToString())
End Try
End Sub
End Class
End NamespaceC#道理和vb.net是一样的就多做解释了
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;
![](/Images/OutliningIndicators/None.gif)
namespace myApp
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
public class calcTotals : Page
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
protected DataGrid MyGrid;
private double runningTotal = 0;
![](/Images/OutliningIndicators/InBlock.gif)
private void CalcTotal(string _price)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
runningTotal += Double.Parse(_price);
}
catch
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
}
}
![](/Images/OutliningIndicators/InBlock.gif)
public void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
CalcTotal( e.Item.Cells[1].Text );
e.Item.Cells[1].Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells[1].Text));
}
else if(e.Item.ItemType == ListItemType.Footer )
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
e.Item.Cells[0].Text="Total";
e.Item.Cells[1].Text = string.Format("{0:c}", runningTotal);
}
}
![](/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
SqlConnection myConnection = new SqlConnection("server=Localhost;database=pubs;uid=sa;pwd=;");
SqlCommand myCommand = new SqlCommand("SELECT title, price FROM Titles WHERE price > 0", myConnection);
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
myConnection.Open();
MyGrid.DataSource = myCommand.ExecuteReader();
MyGrid.DataBind();
myConnection.Close();
}
catch(Exception ex)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
HttpContext.Current.Response.Write(ex.ToString());
}
}
}
}