2012-01-04 50 views
0
string total; 
int totalmarks = 0; 

foreach (GridViewRow row in GridView1.Rows) 
      { 

       int rowcount = this.GridView1.Rows.Count; 

       for (int i = 0; i < rowcount; i++) 
       { 
        total = row.Cells[3].Text; 
        totalmarks = Convert.ToInt32(total); 

        totalmarks +=totalmarks ; 
       } 


      } 

      totalmarksLabel.Text = Convert.ToString(totalmarks); 

我使用该部分代码从gridview中的每行获取单元格[3]的值。然后我尝试总结每一行的每个值并使用标签显示它。然而,当我运行我的代码时,显示的值是510,它应该是170.来自gridview单元格的总和值并使用标签显示

行[1],行[2],行[3]的**值分别为60,30和80。

我发现问题,我有一个额外的循环。纠正后,显示的数值是160而不是170.神秘的另一个'10'在哪里消失?它在马来西亚的3点钟,我被卡住了。

回答

1

我更正了我的代码,如下所示。它的工作

int totalMarks=0; 

     foreach (GridViewRow row in GridView1.Rows) 
     { 

       total = Convert.ToInt32(row.Cells[3].Text); 

       totalMarks = totalMarks + total; 



     } 



     totalMarks Label.Text = Convert.ToString(totalMarks); 
0

找出最好的方法,在你的应用程序上设置一个断点。然后以调试器模式运行。

0
total = row.Cells[3].Text; 

应该

total = row.Cells[i].Text; 
1

我不会用渲染到HTML格式化的值。而是使用基础数据项并将其总和。

var data = getdata(); 
grid.datasource = data; 
grid.databind(); 
total.text = data.select(d=>d.value).sum().tostring(); 
+0

我纠正了我的代码,我没有意识到有一个额外的循环。然而他显示的价值是160而不是170.另一个'10'消失了吗? – Eppiey 2012-01-04 19:23:13

相关问题