2012-01-04 46 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

相關問題