我想问一下如何添加两个列表框和总和是在标签:
当我选中第一个列表框时,它求和,但当我选中另一个复选框时,标签重置为0,并在第二个列表框中求和其他数字,我选中
My code on first listbox:
protected void add(object sender, EventArgs e)
{
int sum = 0;
int test = Int32.Parse(lbl_.Text);
for (int j = 0; j <= pizzalist.Items.Count - 1; j++)
{
if (pizzalist.Items[j].Selected)
{
test += Convert.ToInt32(pizzalist.Items[j].Value);
}
}
lbl_.Text = test.ToString();
My 2nd code in other listbox:
protected void Button5_Click(object sender, EventArgs e)
{
int sum = 0;
// for (int j = 0; j <= waterlist.Items.Count - 1; j++)
for (int j = 0; j <= waterlist.Items.Count -1; j++)
{
if (waterlist.Items[j].Selected)
{
sum += Convert.ToInt32(waterlist.Items[j].Value);
}
}
lbl_.Text = sum.ToString();
}
几点:
- 你需要在第二个函数中读取标签并添加sum变量以使其按预期工作-现在你正在改变标签而不检查它的值;更多:你可以试着用项目的总和来创建全局变量
- 使用TryParse,或者至少用try-catch解析,Convert是一个弱的主意
- 尝试使用foreach代替for
- 你甚至可以使用Linq来快速求和所选项目