2014-11-22 6 views
0

GridView 열에 값을 입력했습니다.TextChanged 이벤트에 열 값을 추가하는 방법은 무엇입니까?

일부 데이터를 GridView에 입력 한 후 특정 열의 합계를 계산해야합니다.

어떻게하면됩니까? 당신이 필요가있는 DataGridView의 특정 컬럼의 합을 표시하는 경우

+2

pls는 당신은 그 열에서 값을 편집 한 후 그리드 열 총을 원하는 –

+0

lttle 더 정교 해보세요? – andy

+0

추가 정보 :) –

답변

0

, 다음이 도움이 될 수 :

private void dataGridView2_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 5) 
     textBox9.Text = CellSum().ToString(); 
} 

private double CellSum() 
{ 
    double sum = 0; 
    for (int i = 0; i < dataGridView2.Rows.Count; ++i) 
    { 
     double d = 0; 
     Double.TryParse(dataGridView2.Rows[i].Cells[5].Value.ToString(), out d); 
     sum += d; 
    } 
    return sum; 
} 

몇 가지 고려 사항이 걸릴 :

  1. 가 있는지 데이터를 확인하면 합계는 숫자 형식입니다. 따라서 열 유형은 정수, double 또는 float 여야합니다 (단, nvarchar 또는 varchar는 아니다). 이렇게하면 값을 합산 할 때 프로그램이 오류 상태가되지 않습니다.

  2. StackOverflow의 answer에서 가져온 위의 코드에서 해당 열의 값은 단순히 정수가 아닌 십진수가 허용되도록 double로 구문 분석되었습니다.

  3. 합계는 double 유형의 변수에 저장해야합니다. 데이터베이스의 다른 위치에 저장하거나 레이블의 사용자에게 표시할지 여부는 사용자가 할 일에 따라 다릅니다.

0

당신이 당신의 TextchangedEvent의 값 합계를, 그래서이

protected void txtintroId_TextChanged(object sender, EventArgs e) 
    { 
float total= 0; 
     foreach (GridViewRow gridViewRow in gridView.Rows) 
     { 

      lbltotal = (Label)gridViewRow.FindControl("lbltotal"); 

      float rowValue = 0; 
      if (float.TryParse(lbltotal.Text.Trim(), out rowValue)) 
       total += rowValue; 
     } 
     GridView1.FooterRow.Cells[3].Text = total.ToString(); 
    } 
관련 문제