2017-12-19 2 views
0

Ich habe eine voll funktionsfähige GridView mit DevExpress mit MVC 5.MVC 5 DevExpress settings.BeforeExport Ereignis wird nicht ausgelöst

Ich möchte die Möglichkeit hinzufügen, die Daten in verschiedenen Formaten zu exportieren, und ich habe es geschafft, indem Sie einige Online-Beispiele folgen.

Jetzt muss ich einige Spalten beim Exportieren verstecken, und ich habe über die BeforeExport Eigenschaft gelesen.

Hier ist, was ich getan habe:

var grid = Html.DevExpress().GridView(settings => { 
    //blah blah stuff 
    #region Export 
     settings.Toolbars.Add(t => { 
      t.EnableAdaptivity = true; 
      t.Items.Add(GridViewToolbarCommand.ExportToXls); 
      t.Items.Add(GridViewToolbarCommand.ExportToXlsx); 
      t.Items.Add(GridViewToolbarCommand.ExportToCsv); 
     }); 

     settings.SettingsExport.EnableClientSideExportAPI = true; 
     settings.SettingsExport.ExcelExportMode = DevExpress.Export.ExportType.DataAware; 
     settings.SettingsExport.RenderBrick = (sender, e) => { 
      if (e.RowType == GridViewRowType.Data && e.VisibleIndex % 2 == 0) 
       e.BrickStyle.BackColor = System.Drawing.Color.FromArgb(0xEE, 0xEE, 0xEE); 
     }; 

     settings.SettingsExport.Landscape = true; 
     settings.SettingsExport.BeforeExport = (sender, e) => { 
      MVCxGridView gridView = sender as MVCxGridView; 
      if (sender == null) return; 
      gridView.Columns["myColumnFieldNameToHide"].Visible = false; 
     }; 
    #endregion 
    //blah blah other stuff 
} 

Die Sache ist, egal was, der Rückruf ich für BeforeExport festgelegt haben wird nie ausgeführt, meine Vermutung ist, das Ereignis nie ausgelöst wird.

Was könnte es sein?

Antwort

2

Eine ähnliche Frage wurde in der official DevExpress ticket diskutiert.

Sie können eine Abhilfe für dieses Szenario finden: das Ereignis ToolbarItemClick Griff und die Sichtbarkeit der erforderlichen Spalten ändern:

settings.ToolbarItemClick += (s, e) => 
{ 
    var gridView = s as MVCxGridView; 
    if(gridView == null) 
     return; 
    if(e.Item.Command == GridViewToolbarCommand.ExportToXlsx) { 
     gridView.Columns["Text"].Visible = false; 
    } 
}; 
+0

Du bist ein Leben Retter. Vielen Dank! – magicleon

Verwandte Themen