ASP.NET GridView 控件,求横列的总和、竖列的总和。
列如:我有个aa 表有4个字段,分别是name、dj、sl、zj、
上面的字段按顺序将他们绑定在GridView控件上。加上编辑功能。
点击编辑后自修改sl列的值,点击更新(只修改sl值,zj值自动按照dj乘以sl改变)。 求dj乘以sl的值,在zj显示 然后在Label8控件里求出zj竖列的总和显示出来
调试的时候出现错误,“输入字符串的格式不正确。”
老师们快来帮忙啊!!!!!!!!! QQ:695496434下面是详细代码:
前台
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="name" HeaderText="name" ReadOnly="True"
SortExpression="name" />
<asp:BoundField DataField="dj" HeaderText="dj" ReadOnly="True"
SortExpression="dj" />
<asp:TemplateField HeaderText="sl" SortExpression="sl">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("sl") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("sl") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="zj" SortExpression="zj">
<ItemTemplate>
<asp:Label ID="Label2" runat="server"
Text='<%# sum(Eval("sl"),Eval("dj")) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
后台
protected void Page_Load(object sender, EventArgs e)
{
qh();
}
private void qh()
{
decimal sum = 0;
foreach (GridViewRow row in GridView1.Rows)
{
sum += Convert.ToInt32(row.Cells[3].Text);
}
Label8.Text = sum.ToString();
}
public string sum(object sl, object dj)
{
int inta = Convert.ToInt32(sl);
int intb = Convert.ToInt32(dj);
return Convert.ToString(inta * intb);
}
------解决方案--------------------首先看下sl 和dj 是否是null
C# code
int inta = Convert.ToInt32(sl);
int intb = Convert.ToInt32(dj);
------解决方案--------------------
格式不对就检查格式啊
断点调试
------解决方案--------------------
随着需求提高,表现层可能用各种方式表现,例如原来用百分比数字的地方可能改为用比例尺(图片)来表示。所以不要从什么gridview的输出去找数据,应该从它的数据源去统计数字。
如果你这个问题出自一个什么培训学校的教材,那么你上错了学校了。
------解决方案--------------------
把
sum += Convert.ToInt32(row.Cells[3].Text);
改成
int value;
sum+=int.TryParse(row.Cells[3].Text,out value);
如果不报错,说明row.Cells[3].Text不是一个合法的整数格式字符串。
------解决方案--------------------
qh() 这个方法应该不是在加载事件中调用 你要统计和的话 在gridview的DataBinding事件里面写 意思就是当gridview绑定数据时 求和