再发,计算DataGrid某一列的总和!

Remex_Love_Lilie 2005-09-01 10:19:49
Code:
string MemberID=null;
MemberID=Request.Cookies["Member_ID"].Value;
SqlConnection Conn=DB_Operate.Create_Connection();
Conn.Open();
SqlDataAdapter Manage_Order_Cmd=new SqlDataAdapter("Select * From Order_Code Where Member_ID='"+MemberID+"' Order By Order_Code Desc",Conn);
DataSet DS=new DataSet();
Manage_Order_Cmd.Fill(DS,"Order_Code");
this.Manage_Order_DataGrid.DataKeyField="Order_Code";
this.Manage_Order_DataGrid.DataSource=DS.Tables["Order_Code"].DefaultView;
this.Manage_Order_DataGrid.DataBind();
//获取会员报单总记录数
string OrderRecord=this.Manage_Order_DataGrid.Items.Count.ToString();
this.Order_Record.Text=OrderRecord;
int sum=0;
foreach(System.Web.UI.WebControls.DataGridItem lsItem in this.Manage_Order_DataGrid.Items)
{
if(lsItem.ItemIndex>=0)
{
sum+=int.Parse(lsItem.Cells[3].Text);
}
}
this.Order_Total_Money.Text=sum.ToString();
Datagrid Html代码:
<asp:datagrid id="Manage_Order_DataGrid" runat="server" AllowPaging="True" Width="600px" AutoGenerateColumns="False"
DataKeyField="Order_Code" CellPadding="1" BorderWidth="1px" BorderStyle="Solid" BorderColor="#698CC3">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#F0F0F0"></AlternatingItemStyle>
<ItemStyle BackColor="#FEFEFE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#698CC3"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="会员号">
<HeaderStyle HorizontalAlign="Center" ForeColor="White" Width="100px"></HeaderStyle>
<ItemTemplate>
<div align="center"><%#DataBinder.Eval(Container.DataItem,"Member_ID")%>
</div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Order_Code" HeaderText="订单号">
<HeaderStyle HorizontalAlign="Center" ForeColor="White" Width="400px"></HeaderStyle>
<ItemStyle Width="500px"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="编辑">
<HeaderStyle ForeColor="White" Width="40px"></HeaderStyle>
<ItemTemplate>
<a href='Edit_Order.aspx?Order_Code=<%# DataBinder.Eval(Container.DataItem, "Order_Code")%>'>
修改</a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle ForeColor="White" Width="40px"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
每次运行都说输入的字符串格式不正确
数据表:
Member_ID Product_Code Product_Num Total_Money
001 BW001 10 100
001 BW002 20 45
我要计算Total_Money的总和
...全文
194 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
triffang 2005-09-01
  • 打赏
  • 举报
回复
http://blog.csdn.net/triffang/archive/2005/06/25/402962.aspx
aquariusdeng 2005-09-01
  • 打赏
  • 举报
回复
另外,你的Cells[3]是不是Total_Money?
就算是,
sum+=int.Parse(lsItem.Cells[3].Text);
这行也是很危险的代码,只要碰上不是数字的字符,程序就会报错,比如为空( )
在确定Cells[3]是Total_Money没错之后,在int.Parse那行加try catch吧

暗石绿 2005-09-01
  • 打赏
  • 举报
回复
你 DataGrid 里没有 Total_Money 这一列,你统计什么呀?
暗石绿 2005-09-01
  • 打赏
  • 举报
回复
你的 DataGrid 里没有 Total_Money 这一列,你统计什么呀?
aquariusdeng 2005-09-01
  • 打赏
  • 举报
回复
设个断点去看看lsItem.Cells[3].Text是什么值不就行了?

你看看是不是把页眉页脚也给累加了
lsItem.ItemType==ListItemType.Header||lsItem.ItemType==ListItemType.Footer
把这两种情况跳过
Remex_Love_Lilie 2005-09-01
  • 打赏
  • 举报
回复
顶顶
jamex 2005-09-01
  • 打赏
  • 举报
回复
Sample:

Dim TotalSumCol2 As Decimal
Dim PageSumCol2 As Decimal

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.AlternatingItem, ListItemType.Item
'计算本页的合计
PageSumCol2 += CDbl(e.Item.Cells(2).Text)

Case ListItemType.Footer
'Use the footer to display the summary row.
e.Item.Cells(1).Text = "本页合计:" & PageSumCol2.ToString("c")
e.Item.Cells(2).Text = "总合计:" & TotalSumCol2.ToString("c")
End Select

End Sub
y3q3 2005-09-01
  • 打赏
  • 举报
回复
建议在DataGird数据绑定的时候进行数据的统计

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧