데이터 소스에 바인딩되는 데이터 그리드에 동적 열이 있습니다. 이제 각 열의 합계를 각 열에 마지막 행으로 추가하고 싶습니다.
DataTable dt = dgvReport.DataSource as DataTable;
DataRow row = dt.NewRow();
dt.Rows.Add(row);
row[0] = "Totals";
for (int i = 1; i < dgvReport.Columns.Count; i++)
{
int sum = 0;
for (int j = 1; j < dgvReport.Rows.Count; ++j)
{
sum += Convert.ToInt32(dgvReport.Rows[j].Cells[i].Value.ToString());
}
}
하지만 작동하지 않습니다. 각 열마다 필요합니다
15
10
55
값이없는 "합계"행을 포함하여 모든 행을 합산합니다. 그리고 ToString ()을 사용하고 정수로 캐스팅 할 필요가 없습니다.
귀하의 루프에 따르면 Colum [0]과 Row [0]에 테이블의 캡션이 있다고 가정합니다.
|------|-------|------|------|
| | Cap1 | Cap2 | Cap3 |
|------|-------|------|------|
| Cap1 | 10 | 20 | 10 |
|------|-------|------|------|
| Cap2 | 15 | 10 | 13 |
|------|-------|------|------|
|Totals| 25 | 30 | 23 |
|------|-------|------|------|
DataTable dt = dgvReport.DataSource as DataTable;
DataRow row = dt.NewRow();
dt.Rows.Add(row);
row[0] = "Totals";
for (int i = 1; i < dgvReport.Columns.Count; i++)
{
int sum = 0;
for (int j = ; j < dgvReport.Rows.Count; ++j)
{
if ( j < dgvReport.Rows.Count - 1)
sum += Convert.ToInt32(dgvReport.Rows[j].Cells[i].Value);
else
dgvReport.Rows[j].Cells[i].Value = sum;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다