2012-01-04 9 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); 

グリッドビューのすべての行のセル[3]から値を取得するコードの部分を使用します。次に、すべての行のすべての値を合計し、ラベルを使用して表示しようとします。しかし、コードを実行すると、表示される値は170であるはずです。gridviewセルからの合計値とラベルを使用してそれを表示

** row [1]、row [2]、row [3]の値はそれぞれ60,30および80です。

問題が見つかりました。余分なループがあります。それを訂正した後、170の代わりに160の値が表示されます。他の '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; 

は、私はHTMLにレンダリングされたフォーマットされた値を使用していないだろう

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

であるべき。代わりに基礎となるデータ項目を使用して値を合計します。

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

私は自分のコードを修正しました、私は余分なループがあることを認識していませんでした。しかし、彼は170の代わりに160の値を示しています。他の10は消えていますか? – Eppiey

関連する問題