2 votes

Exportation RadGrid vers Excel

J'ai un radgrid qui génère des colonnes dynamiquement en fonction de l'entrée de l'utilisateur. Une fois que la grille est peuplée, l'utilisateur a la possibilité d'exporter vers Excel ou Word. Cependant, lorsque l'utilisateur souhaite conserver la mise en forme de la page, aucune donnée n'est exportée. Mais si l'utilisateur choisit ensuite d'ignorer la pagination, tout fonctionne correctement.

Il semble donc que si la propriété "AutoGenerateColumns" du radgrid est définie sur false, et que "IgnorePaging" est également sur false, les données ne sont pas exportées.

Est-ce que quelqu'un d'autre a rencontré ce problème ou est-ce que j'ai oublié quelque chose?

Voici les méthodes qui configurent et appellent l'exportation :

    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");
        }
    }

Merci d'avance pour l'aide:) Pat

P.S. J'ai exclu la méthode qui crée les colonnes pour des raisons de brièveté.

0voto

msigman Points 2621

Il n'y a pas assez d'informations ici pour fournir une cause/solution exacte, cependant une suggestion (plutôt un contournement) est de toujours définir IgnorePaging lorsque l'utilisateur exporte. Voici un exemple de code :

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");
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X