读书人

gridview 求和,该怎么处理

发布时间: 2012-02-13 17:20:26 作者: rapoo

gridview 求和
NAM_FACT COD_DOLA UNPAID
A CNY 100
B CNY 200
C USD 300
D USD 400
E CNY 500
CNY 800
USD 700

大家好,有问题请大家帮忙了,上面这个示例蓝色部分是已查询后在gridview中实现的,现在我想要加上下面两行求和的部分(注意哦是分组求和的),我想通过sql的方法来实现,不知道怎么做,请大家帮忙了,最好也能给我一个代码的例子,谢谢了!

[解决办法]
GridView的Group显示,看这里
http://blog.csdn.net/downmoon/archive/2008/09/14/2832007.aspx
http://www.cnblogs.com/downmoon/archive/2008/08/26/1276538.html
[解决办法]
楼主意思是在原来的记录基础上增加 分组求和的记录吧!
[解决办法]
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[2].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{

}
}
或循环gridview,判断值,统计
[解决办法]

探讨
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[2].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{

}
}
或循环gridview,判断值,统计

[解决办法]
给你个代码看看:
C# code
 
protected void gvService_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (gvService.EditIndex == -1)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string accountname = ((Label)e.Row.Cells[7].FindControl("Label5")).Text;
double money = System.Convert.ToDouble(((Label)e.Row.Cells[5].FindControl("Label3")).Text);
double yjsum = 0.00;
double sjsum = 0.00;
double zssum = 0.00;
if (e.Row.RowIndex == 0)
{
if (accountname == "应收款项")
{
ViewState.Add("YjSumMoney", money);
ViewState.Add("SjSumMoney", 0.00);
ViewState.Add("ZsSumMoney", 0.00);
}
else if (accountname == "实收款项")
{
ViewState.Add("YjSumMoney", 0.00);
ViewState.Add("SjSumMoney", money);
ViewState.Add("ZsSumMoney", 0.00);
}
else
{
ViewState.Add("YjSumMoney", 0.00);
ViewState.Add("SjSumMoney", 0.00);
ViewState.Add("ZsSumMoney", money);
}
}
else
{
yjsum = System.Convert.ToDouble(ViewState["YjSumMoney"]);


sjsum = System.Convert.ToDouble(ViewState["SjSumMoney"]);
zssum = System.Convert.ToDouble(ViewState["ZsSumMoney"]);
}
if (accountname == "应收款项")
{
yjsum += money;
}
else if (accountname == "实收款项")
{
sjsum += money;
}
else
{
zssum += money;
}
ViewState["YjSumMoney"] = yjsum;
ViewState["SjSumMoney"] = sjsum;
ViewState["ZsSumMoney"] = zssum;
}
if (e.Row.RowType == DataControlRowType.Footer)
{
((Label)e.Row.Cells[5].FindControl("Label4")).Text = System.Convert.ToDouble(ViewState["YjSumMoney"]).ToString("0.00");
((Label)e.Row.Cells[5].FindControl("Label6")).Text = System.Convert.ToDouble(ViewState["SjSumMoney"]).ToString("0.00");
((Label)e.Row.Cells[5].FindControl("Label8")).Text = System.Convert.ToDouble(ViewState["ZsSumMoney"]).ToString("0.00");
tbYJMoney.Text = ((Label)e.Row.Cells[5].FindControl("Label4")).Text;
tbSJMoney.Text = ((Label)e.Row.Cells[5].FindControl("Label6")).Text;
tbZSMoney.Text = ((Label)e.Row.Cells[5].FindControl("Label8")).Text;
decimal yjmoney = System.Convert.ToDecimal(tbYJMoney.Text);
decimal sjmoney = System.Convert.ToDecimal(tbSJMoney.Text);
tbQKMoney.Text = System.Convert.ToString(yjmoney - sjmoney);
if (yjmoney - sjmoney <= 0)
{
tbQKMoney.Text = "0.00";
tbMoney.Text = System.Convert.ToString(System.Convert.ToDecimal(tbZSMoney.Text) + System.Convert.ToDecimal(tbSJMoney.Text) - System.Convert.ToDecimal(tbXFMoney.Text));
}
else
{
tbMoney.Text = System.Convert.ToString(System.Convert.ToDecimal(tbSJMoney.Text) - System.Convert.ToDecimal(tbXFMoney.Text));
}
MUpdate();
}
}
}

读书人网 >C#

热点推荐