2017-12-19 4 views
0

MVC 5을 사용하여 DevExpress을 사용하여 완전히 작동하는 GridView입니다.MVC 5 DevExpress settings.BeforeExport 이벤트가 실행되지 않습니다.

다양한 형식으로 데이터를 내보낼 가능성을 추가하고 싶습니다. 몇 가지 온라인 예제를 따라 가면서 관리 할 수있었습니다.

이제 내보낼 때 열을 숨기고 BeforeExport 속성에 대해 읽었습니다.

는 여기에 내가 무슨 짓을했는지의 :

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 
} 

건 상관없이 내가 BeforeExport에 설정 한 콜백이 실행되지 않습니다 무엇을,하지, 내 생각은 이벤트가 발생되지 않습니다이다.

무엇이 될 수 있습니까?

답변

2

유사한 질문이 official DevExpress ticket에서 논의되었다.

당신은이 시나리오에 대한 해결 방법을 찾을 수 있습니다 ToolbarItemClick 이벤트를 처리하고 필요한 컬럼의 가시성 변경 :

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

당신은 삶의 구세주 야합니다. 감사! – magicleon

관련 문제