2016-07-21 1 views
0

J'utilise XamDataGrid dans l'application WPF. XamDataGrid est lié à la source de données hiérarchique. J'utilise la méthode ExportAsync() pour exporter des données pour xamDataGrid. Il s'agit du niveau parent et enfant exportateur, mais je n'ai besoin d'exporter que les données parent/niveau supérieur. Comment exporter uniquement les données de premier niveau lors de l'exportation de xamDataGrid? 'Exporter uniquement les données de premier niveau lors de l'exportation de xamDataGrid lié à la source de données hiérarchique

XamDataGrid xamDataGrid = xamGridExporter.AssociatedObject; 
    if (xamDataGrid.Records.Count > 0) 
    { 
     SaveFileDialog saveFileDialog = new SaveFileDialog() { Filter = "Excel2007|*.xlsx|Excel97To2003|*.xls|Excel97To2003Template|*.xlt", DefaultExt = "xls" }; 
     DataPresenterExcelExporter exporter = xamGridExporter.ExporterResource; 
     if (saveFileDialog.ShowDialog().Equals(DialogResult.OK)) 
     { 
      WorkbookFormat format = SetWorkBookFormat(Path.GetExtension(saveFileDialog.FileName)); 
      ExportOptions exportOptions = new ExportOptions(); 
      exporter.ExportAsync(xamDataGrid, saveFileDialog.FileName, format, exportOptions); 
     } 
    } 

J'utilise le code ci-dessus pour exporter des données.

Merci, Disha

Répondre

0

Je suis capable de sauter les dossiers d'enfants lors de l'exportation en utilisant l'événement InitializeRecord du DataPresenterExcelExporter utilisé pour l'exportation. Cet événement vérifie si l'enregistrement est un enregistrement de données et qu'il a des enfants, puis définissez e.SkipDescendants sur true.

static void exporter_InitializeRecord(object sender, InitializeRecordEventArgs e) 
    { 
      DataRecord record = e.Record as DataRecord; 
      if (record != null && record.ParentRecord == null && record.HasChildren) 
       e.SkipDescendants = true; 
    } 

Merci, Disha