2012-10-22 2 views
0

확인 된 행의 총 가격을 표시하는 가격 열이 있습니다. 원래 선택 버튼을 사용하여이 작업을 시도했지만 작동하지 않으므로 gridview에 체크 상자를 추가했습니다. 지금은 라벨 나는 피곤이 코드에 해당 행의 합이 나올 일부 행을 검사 할 때 내가 필요하지만 난 오류가 :체크 박스 선택시 gridview 열의 값 합계

내가 당신의 그리드 이외의 모든 일을하는 것으로 가정 무엇
double sum = 0; 

    foreach (GridViewRow gvr in GridView1.Rows) 
    { 
     CheckBox cb = (CheckBox)gvr.FindControl("Checkbox1"); 
     if (cb.Checked) 
     { 
      double amount = Convert.ToDouble(gvr.Cells[2].Text); 
      sum += amount; 
     } 


     Label1.Text = sum.ToString(); 

    } 
+0

오류를 자세히 설명하고 정확한 오류 메시지를 알려주십시오. * 오류가 두 번 합계 = 0; * 매우 명확하지 않습니다. – naveen

+1

오류 메시지는 무엇입니까 ?? –

+1

나는 그가 (개체 참조가 개체의 인스턴스로 설정되지 않습니다) 점점 것 같아요 :) –

답변

0

, 즉,이 코드를 실행하는 곳을 클릭하여 페이지의 어느 부분에 단추가있는 것입니다. 권리??? 그렇다면 코드에 하나 이상의 것을 포함시켜야하는데, 이것은 데이터로드를위한 검사입니다 ...

double sum = 0; 없는 상황 인 경우

foreach (GridViewRow gvr in GridView1.Rows) 
{ 
if(gvr.RowType == DataControlRowType.DataRow) 
{ 
    CheckBox cb = (CheckBox)gvr.FindControl("Checkbox1"); 
    if (cb.Checked) 
    { 
     //check wether the cell value is empty or not, if empty take a 0 instead... 
     double amount = gvr.Cells[2].Text.Trim() != null && gvr.Cells[2].Text.Length>0 ? Convert.ToDouble(gvr.Cells[2].Text.Trim()) : 0; 
     sum += amount; 
    } 


    Label1.Text = sum.ToString(); 
    } 

} 

, 당신은

... 내가 당신을 도울 빈터 수 있습니다, 해결하는 경우 이 문제에 대해 저에게 알려 .. 각 체크 박스의 변경 이벤트에 그것을해야
+0

그래, 내가 바깥쪽에 단추가있다. 하지만 내가 ur 코드를 시도하면 "입력 문자열이 올바른 형식이 아닙니다"라는 동일한 오류가 발생합니다. – faezajackson

+0

이는 변환 할 셀의 값이 비어있는 경우에만 비어 있습니다. 당신은 세포 가치가 double로 변환 될 수있는 첫 번째 습지를 확인해야합니까 ?? –

+0

지금 편집하고 있습니다. 편집 코드 –

0

이중 합계 = 0;

foreach (GridViewRow gvr in GridView1.Rows) 
{ 
    CheckBox cb = (CheckBox)gvr.FindControl("Checkbox1"); 
    if (cb.Checked) 
    { 
     double amount = Convert.ToDouble(gvr.Cells[2].Text.replace("&nbsp","")); 
     sum += amount; 
    } 


    Label1.Text = sum.ToString(); 

} 
+0

double amount = Convert.ToDouble (gvr.Cells [2] .Text.Trim(); –