Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/1/30 1:32:37
在datagrid中求和的代码(c#、vb.net)_[Asp.Net教程]

在datagrid中求和的代码(c#、vb.net)_[Asp.Net教程]
aspx文件
<%@ Page Inherits="myApp.calcTotals" Src="" %>



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">



ItemStyle-HorizontalAlign="Right"
HeaderStyle-HorizontalAlign="Center" />




下面给出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

Namespace myApp

Public Class calcTotals : Inherits Page

Protected MyGrid As DataGrid
Private runningTotal As double = 0

’定义合计变量
Private Sub CalcTotal(_price As String)
’求和
Try
runningTotal += Double.Parse(_price)
Catch
’ 空值
End Try
End Sub

Public Sub MyDataGrid_ItemDataBound(sender As Object, e As DataGridItemEventArgs)

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

CalcTotal( e.Item.Cells(1).Text )
’循环执行求和程序
e.Item.Cells(1).Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells(1).Text))

Elseif(e.Item.ItemType = ListItemType.Footer )

e.Item.Cells(0).Text="Total"
e.Item.Cells(1).Text = string.Format("{0:c}", runningTotal)
End If
End Sub

Protected 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

myConnection.Open()
MyGrid.DataSource = myCommand.ExecuteReader()
MyGrid.DataBind()
myConnection.Close()

Catch ex As Exception

’ 有错误发生
HttpContext.Current.Response.Write(ex.ToString())
End Try
End Sub
End Class
End Namespace


C#道理和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;

namespace myApp
{
public class calcTotals : Page
{
protected DataGrid MyGrid;
private double runningTotal = 0;

private void CalcTotal(string _price)
{
try
{
runningTotal += Double.Parse(_price);
}
catch
{
}
}

public void MyDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
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 )
{
e.Item.Cells[0].Text="Total";
e.Item.Cells[1].Text = string.Format("{0:c}", runningTotal);
}
}

protected void Page_Load(object sender, EventArgs e)
{
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
{
myConnection.Open();
MyGrid.DataSource = myCommand.ExecuteReader();
MyGrid.DataBind();
myConnection.Close();
}
catch(Exception ex)
{
HttpContext.Current.Response.Write(ex.ToString());
}
}



If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759