2012-11-20 2 views
0

8000 개의 결과를 반환하는 그리드가 있습니다.이 결과를 날짜별로 필터링하여 새로운 데이터 테이블에 저장하고 나중에 리바 인하고 싶습니다. 내 옵션은 무엇RadGrid 결과를 필터링하고 새 데이터 테이블에 저장하십시오.

Input array is longer than the number of columns in this table.

:이 오류가 발생?

if (e.CommandName == "Filter") 
{ 
    DataTable dt = new DataTable(); 

    foreach (GridDataItem item in RadGrid2.Items) 
    { 
     for (int i = 0; i < RadGrid2.Items.Count; i++) 
     { 
      dt.Rows.Add(item); 
     } 
    } 
+0

'DataTable'에 열을 추가하기 만하면됩니다. – Jan

답변

1
if (e.CommandName == "Filter") 
    { 
     DataTable dt = new DataTable(); 
     td.Columns.Add("Column1"); 
     td.Columns.Add("Column2"); 
     //etc. 
     //add same columns as you have in RadGrid2 

     foreach (GridDataItem item in RadGrid2.Items) 
     { 

      for (int i = 0; i < RadGrid2.Items.Count; i++) 
      { 

       dt.Rows.Add(item); 
      } 
     } 

당신은 당신의 DataTable의 TD에 열을 추가해야합니다. 항목을 아무 곳에 나 추가 할 수 없습니다.

0

RadGrid에 8000 개의 결과를 반환하는 것이 너무 많습니다.

AllowCustomPaging을 사용하고 표시해야하는 행만 검색하시기 바랍니다.

예를 들어, Entity Framework에서 Skip and Take을 사용합니다.

관련 문제