MVC 5 DevExpress settings.BeforeExport 事件未触发
MVC 5 DevExpress settings.BeforeExport event is not fired
我有一个完全可用的 GridView
使用 DevExpress
和 MVC 5
。
我想增加以各种格式导出数据的可能性,我已经通过一些在线示例设法做到了这一点。
现在,我需要在导出时隐藏一些列,我已经阅读了 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
设置的回调永远不会执行,我猜事件永远不会被触发。
会是什么?
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;
}
};
我有一个完全可用的 GridView
使用 DevExpress
和 MVC 5
。
我想增加以各种格式导出数据的可能性,我已经通过一些在线示例设法做到了这一点。
现在,我需要在导出时隐藏一些列,我已经阅读了 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
设置的回调永远不会执行,我猜事件永远不会被触发。
会是什么?
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;
}
};