2009-06-25 4 views
2

사용자 입력을 기반으로 동적으로 열을 생성하는 radgrid가 있습니다. 그리드가 채워지면 사용자는 Excel 또는 Word로 내보낼 수 있습니다. 그러나 사용자가 페이지 서식을 유지하려면 데이터를 내보낼 수 없습니다. 그러나 사용자가 페이징을 무시하도록 선택하면 모든 것이 정상적으로 작동합니다.RadGrid export to excel

radgrid 속성 "AutoGenerateColumns"가 false로 설정되고 "IgnorePaging"도 false 인 경우 데이터가 내보내지지 않는 것 같습니다.

다른 사람 누구나이 문제가 있거나 무엇인가보고있는 중입니까?

추신 : 팻 도움을 사전에

private void ConfigureReport(string strExportType) 
    { 
     switch (strExportType.ToLower()) 
     { 
      case "excel": 
       RadGrid1.ExportSettings.FileName = "RadGridExportToExcel"; 
       break; 

      case "word": 
       RadGrid1.ExportSettings.FileName = "RadGridExportToWord"; 
       break; 
     } 
     RadGrid1.ExportSettings.IgnorePaging = this.cbxPaging.Checked; 
     RadGrid1.ExportSettings.ExportOnlyData = this.cbxFormat.Checked; 
    } 

    private void btnExcel_Click(object sender, EventArgs e) 
    { 
     if (this.UserProcess.SearchResults != null &&  
      this.UserProcess.SearchResults.Count > 0) 
     { 
      ConfigureReport("excel"); 
      RadGrid1.MasterTableView.ExportToExcel(); 
     } 
     else 
     { 
      this.lblError.Text = AAILocalization.GetLocaleText("Error:NoResultExport"); 
     } 
    } 

감사 : 여기

구성하고 수출을 호출하는 방법이 있습니다 무언가를 위해 열을 만드는 메서드는 제외했습니다.

답변

0

정확한 원인/해결 방법을 제공하기에 충분한 정보가 없지만 사용자가 내보낼 때 한 가지 제안 (해결 방법이 더 있음)은 항상 IgnorePaging으로 설정하는 것이 좋습니다. 다음은 몇 가지 샘플 코드입니다 :

private void btnExcel_Click(object sender, EventArgs e) 
    { 
     if (this.UserProcess.SearchResults != null &&  
      this.UserProcess.SearchResults.Count > 0) 
     { 
      ConfigureReport("excel"); 
      RadGrid1.MasterTableView.AllowPaging = false; 
      RadGrid1.PageSize = RadGrid1.Items.Count + 1; 
      RadGrid1.MasterTableView.ExportToExcel(); 
     } 
     else 
     { 
      this.lblError.Text = AAILocalization.GetLocaleText("Error:NoResultExport"); 
     } 
    }