如何计算一个动态Table里的每一列的值?

seizetoday 2010-03-16 09:36:42
请教,用JS也行,或是我用的repeater 在后台写行。最后一行循环出每一列的总和。
...全文
216 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
月之点点 2010-03-16
  • 打赏
  • 举报
回复
随便你了。。。如果是我。。我就会直接用
SQL 查询的时候算出来~~~~~
没有必要在用程序实现了。。。
select id,a,sum(a) as A_sum from A
月之点点 2010-03-16
  • 打赏
  • 举报
回复
如果你数据量非常庞大。就用我的方法。。。。。
不要遍历repeater 。不但消耗内存。还浪费速度~~~
月之点点 2010-03-16
  • 打赏
  • 举报
回复
我真汗??这是最简单的方法了。。。。。。消耗的速度基本为0

要不你就用SQL语句!!!!

select id,a,sum(a) as c from A

没什么可想的。。。。。
seizetoday 2010-03-16
  • 打赏
  • 举报
回复
等等啊。我再等等。这个方法有点麻烦,上头肯定过不了关的。
月之点点 2010-03-16
  • 打赏
  • 举报
回复
怎么没响应了?????汗死~~
月之点点 2010-03-16
  • 打赏
  • 举报
回复

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Sum(Eval("a1").ToString(),1) %>
</td>
<td>
<%# Sum(Eval("a2").ToString(),2)%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<%=OK(1)%> </td>
<td>
<%=OK(2)%>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>


static int i_1=0;
static int i_2=0;
public string Sum(string j,string k)
{
if(k=="1")
{
i_1 += Convert.ToInt32(j);
return j;
}
else if(k=="1")
{
i_2 += Convert.ToInt32(j);
return j;
}
}
//值
public string OK(string k)
{
if(k=="1")
{
return i_1;
}
else if(k=="2")
{
return i_2;

}

}



手写的。。有点乱。。。你凑活看把。。
yang_road 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 bojiansky 的回复:]

C# code

/// <summary>
/// 根据条件查询保健食品现金发放信息
/// </summary>
/// <param name="bonus"></param>
/// <returns></returns>
public static DataTable GetHrBonu……
[/Quote]

这个绝对可行。
月之点点 2010-03-16
  • 打赏
  • 举报
回复
汗死。。我只给你写了1个列的。。。你就不能判断一下啊。。算了。我给你写了全的例子把。。。
seizetoday 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 shijianyu00 的回复:]
- -!别忘了给分啊。。。昨天晚上看到你也问 这个问题。以为你已经解决了呢~~~~
[/Quote]

你这方法得出一个值到是可行。可写第二行的时候,得出的是第一行和第二行相加。
double sum = i;
i = 0.0;
return sum;
bojiansky 2010-03-16
  • 打赏
  • 举报
回复

/// <summary>
/// 根据条件查询保健食品现金发放信息
/// </summary>
/// <param name="bonus"></param>
/// <returns></returns>
public static DataTable GetHrBonusInfo(GroupHrBonus bonus)
{
DataTable dt = myOperate.GetHrBonusInfo(bonus);
DataRow dr = dt.NewRow();
dr["person_name"] = "总计";
dr["Attendance_Days"] = dt.Compute("sum(Attendance_Days)", "");
dr["Change_Rest_Days"] = dt.Compute("sum(Change_Rest_Days)", "");
dr["Absence_Days"] = dt.Compute("sum(Absence_Days)", "");
dr["Business_Travel_Days"] = dt.Compute("sum(Business_Travel_Days)", "");
dr["Meeting_Study_Days"] = dt.Compute("sum(Meeting_Study_Days)", "");
dr["Social_Work_Days"] = dt.Compute("sum(Social_Work_Days)", "");
dr["HC_Days"] = dt.Compute("sum(HC_Days)", "");
dr["HC_Stand_Yuan"] = dt.Compute("sum(HC_Stand_Yuan)", "");
dr["Actual_Pay"] = dt.Compute("sum(Actual_Pay)", "");
dt.Rows.Add(dr);

return dt;
}

直接加在你的方法里面。返回Table
月之点点 2010-03-16
  • 打赏
  • 举报
回复
- -!别忘了给分啊。。。昨天晚上看到你也问 这个问题。以为你已经解决了呢~~~~
月之点点 2010-03-16
  • 打赏
  • 举报
回复
怎么不行啊????


<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("a1") %>
</td>
<td>
<%# Eval("a2") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<%=OK()%> </td>
<td>
<%=OK()%>
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>





public string OK()
{
return i;

}




不就是这样吗???
seizetoday 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shijianyu00 的回复:]
就算你 1千万条~~~~
[/Quote]


<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# Eval("a1") %>
</td>
<td>
<%# Eval("a2") %>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
a1列的总和
</td>
<td>
a2列的总和
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>


能用你这方法吗?
月之点点 2010-03-16
  • 打赏
  • 举报
回复
就算你 1千万条~~~~


月之点点 2010-03-16
  • 打赏
  • 举报
回复
就算你想点击一个按钮计算Repeater1 里面的值~~~

那么直接把I调出来就行了。。。


这是速度最快的方法了~~~~

没有比这个速度在快的了。。。。
月之点点 2010-03-16
  • 打赏
  • 举报
回复
为什么。。。??? 相加的结果已经出来了。。为什么不行。。。
seizetoday 2010-03-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shijianyu00 的回复:]
前台

HTML code

<asp:Repeater ID="Repeater1" runat="server"><ItemTemplate>
<%#Sum(Eval("那一列").ToString()) %>
</ItemTemplate></asp:Repeater>


后台

C# code

s……
[/Quote]

好像行不通哦。
月之点点 2010-03-16
  • 打赏
  • 举报
回复
前台

<asp:Repeater ID="Repeater1" runat="server"><ItemTemplate>
<%#Sum(Eval("那一列").ToString()) %>
</ItemTemplate></asp:Repeater>

后台

static int i=0;
public string Sum(string j)
{
i += Convert.ToInt32(j);
return j;
//最后 i 就是你想要的 结果~~~
}

你不就是想算出那列的和吗???这是最简单的方法~~~~~~不用循环~~~
meditatorx 2010-03-16
  • 打赏
  • 举报
回复
等待
月之点点 2010-03-16
  • 打赏
  • 举报
回复
你还没解决这问题啊???其实这问题相当简单啊。。。。。。。。
等会给你写个代码。。。

62,040

社区成员

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

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

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

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