repeater实现统计问题

xinyouf 2010-09-24 04:34:56
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int sum4 = 0;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
sum1 =sum1+ Convert.ToInt32((e.Item.FindControl("Label1") as Label).Text);
sum2 += Convert.ToInt32((e.Item.FindControl("Label2") as Label).Text);
sum3 += Convert.ToInt32((e.Item.FindControl("Label3") as Label).Text);
sum4 += Convert.ToInt32((e.Item.FindControl("Label4") as Label).Text);
}

else if (e.Item.ItemType == ListItemType.Footer)
{
(e.Item.FindControl("LitSum1") as Literal).Text=sum1.ToString();
JScript.Alert(sum1);
}
JScript.Alert(sum2);
}

为什么数据累加不了呢
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
koukoujiayi 2010-09-24
  • 打赏
  • 举报
回复
将变量声明放在方法外面,如:
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
int sum4 = 0;
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
////.............
}
wuyq11 2010-09-24
  • 打赏
  • 举报
回复
设置断点,单步调试数据
protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = e.Item.DataItem as DataRowView;
if (drv != null)
{
Sum += Convert.ToInt32(drv["s"]);
}
}else if (e.Item.ItemType == ListItemType.Footer)
{
Literal lit=e.Item.FindControl("lit") as Literal;
if (lit != null)
{
lit.Text = Sum.ToString();
}

}

}
丰云 2010-09-24
  • 打赏
  • 举报
回复
你的容器变量定义在Repeater方法里面,
每次进入方法都会从新初始化,
那样能累加吗?
q107770540 2010-09-24
  • 打赏
  • 举报
回复
单步调试

62,272

社区成员

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

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

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

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