ASP.NET GridView 控件,求横列的总和、竖列的总和。

很酷的游戏网 2012-04-04 06:55:00
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="name" HeaderText="name" SortExpression="name"
ReadOnly="True" />
<asp:BoundField DataField="dj" HeaderText="dj" SortExpression="dj"
ReadOnly="True" />
<asp:TemplateField HeaderText="sl" SortExpression="sl">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("sl") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("sl") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="zj" SortExpression="zj">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Convert.ToInt32(Eval("dj").ToString().Trim())*Convert.ToInt32(Eval("sl").ToString().Trim()) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="zj" HeaderText="zj" ReadOnly="True"
SortExpression="zj" />
<asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:wwConnectionString %>"
DeleteCommand="DELETE FROM [aa] WHERE [ID] = @ID"
InsertCommand="INSERT INTO [aa] ([name], [dj], [sl], [zj]) VALUES (@name, @dj, @sl, @zj)"
SelectCommand="SELECT * FROM [aa]"
UpdateCommand="UPDATE [aa] SET [sl] = @sl WHERE [ID] = @ID">
<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="sl" Type="String" />
<asp:Parameter Name="ID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="dj" Type="String" />
<asp:Parameter Name="sl" Type="String" />
<asp:Parameter Name="zj" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
<asp:Label ID="Label2" runat="server" ></asp:Label>
</form>
</body>
</html>



private void aa()
{
int sum = 0;
for (int i = 0; i < this.GridView1.Rows.Count; i++)
{
try
{
sum += Convert.ToInt32(this.GridView1.Rows[i].Cells[4].Text.ToString().Trim());
}
catch
{
continue;
}
}
Label2.Text = sum.ToString();
}



调试的时候,竖列得出的是 0 ,横列DJ乘以SL已经求出来了。

因为我加了两咧ZJ字段,一列是BoundField,一列是TemplateField。

为什么转换成TemplateField字段后计算不出来呢?

如果sum += Convert.ToInt32(this.GridView1.Rows[i].Cells[4].Text.ToString().Trim());

这句的[4] 换成[5] 就会出现错误:“输入字符串的格式不正确。”

请帮我看看,谢谢了,因为我是自学的。对着本书学习,有些问题找不出来,只能上网论坛问老师们了。
...全文
159 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,268

社区成员

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

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

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

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