DataGrid 统计功能

moshangchen 2003-11-19 09:09:38
DataGrid 统计功能怎么实现啊!没分了。
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liang79930 2003-11-19
  • 打赏
  • 举报
回复
首先你的统计功能是指DataGrid里的数据还是数据里的数字的总计?
1、如果是数据的话就很简单,你可以使用脚注,<asp:datagrid 。。。ShowFooter="true">
并添加OnItemCreated="ItemCreated";事件。
public void ItemCreated(Object sender, DataGridItemEventArgs e)
{
ListItemType elemType = e.Item.ItemType;
if (elemType == ListItemType.Pager)
{
TableCell pager = (TableCell) e.Item.Controls[0];
for (int i=0; i<pager.Controls.Count; i+=2)
{
Object o = pager.Controls[i];
if (o is LinkButton)
{
LinkButton h = (LinkButton) o;
h.Text = "[ " + h.Text + " ]";
}
else
{
Label l = (Label) o;
l.Text = "Page " + l.Text;
}
}
}
2、如果是数据里的数字的总计的话,那就麻烦了,首先在数据库里面建立一个总计的Row:例如:
商品名称 销售商 商品价格
AAAAAAAA TCL 123.68
AAAAAAAA TCL 23.69
AAAAAAAA -1 147.37 (统计行)
BBBBBBB IBM 12.36
BBBBBBB IBM 10.10
BBBBBBB -1 22.46 (统计行)
添加统计行:
DataGrid控件代码不允许您在运行时添加行。即使可以找出这样做的方法,通常您还是会向已经有最大行数的页中添加行。这些新行不会影响网格从给定页提取项的方式。为了防止行和页出现任何问题,直接想数据库中添加行。理想的情况是,在有不同商品名称记录块之间添加额外的空行,但是进行插入查询需要滚动整个结果集。您还可以更有效的附加行,根据需要设置商品名称字段,然后进行排顺。排顺之后你就会发现你要的相同的记录都在一起了。
插入统计行:
DataRowView drv=(DataRowView)e.Item.DataItem;
if((int) drv["销售商"]==-1)
{
e.Item.BackColor=Color.White;
e.Item.Cells[2].Font.Bold=true;
e.Item.Cells[2].HorizontalAlign=HorizontalAlign.Right;
e.Item.Cells.RemoveAt(1);
e.Item.Cells[0].ColumnSpan=2;
}
gewanjun 2003-11-19
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndive/html/data01102002.asp

62,047

社区成员

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

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

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

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