Null Exception while exporting
Problem
When the columns bound to the Grid are not defined in the Grid dataSource, and are passed to the exporting method in Code behind, a null exception is thrown as follows.
<Exception>
System.NullReferenceException was unhandled by user code
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=Syncfusion.EJ.Export
StackTrace:
at Syncfusion.EJ.Export.GridExcelExport.ProcessRecordCell(Object row, Column column)
at Syncfusion.EJ.Export.GridExcelExport.<>c__DisplayClasse.<ProcessRecordRow>b__d(Column column)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Syncfusion.EJ.Export.GridExcelExport.ProcessRecordRow(Object row)
at Syncfusion.EJ.Export.GridExcelExport.RenderRecord()
at Syncfusion.EJ.Export.GridExcelExport.ProcessGridContents()
at Syncfusion.EJ.Export.GridExcelExport.IterateElements()
at Syncfusion.EJ.Export.GridExcelExport.ExportHandler()
at Syncfusion.EJ.Export.GridExcelExport.ExecuteResult(GridProperties GridModel, IEnumerable dataSource)
at Syncfusion.EJ.Export.GridExcelExport.Export(GridProperties gridModel, IEnumerable dataSource, Boolean multipleExport)
at Syncfusion.EJ.Export.ExcelExport.Export(GridProperties gridmaodel, IEnumerable datasource, String excelname, ExcelVersion excelversion, Boolean isHideColumnIncude, Boolean isTemplateColumnIclude, String theme)
at EMIMReports._Default.dgReport_OnServerExcelExporting(Object sender, GridEventArgs e) in C:\Visual Studio Projects\2014\ESJS\EMIMReports\EMIMReports\Default.aspx.vb:line 99
at Syncfusion.JavaScript.Web.Grid.PostBackEventHandler(String EventName, Dictionary`2 args)
at Syncfusion.JavaScript.Web.CommonDataBoundControl.RaisePostBackEvent(String EventArgument)
InnerException:
</Exception>
Reason
The dataSource passed to the exporting method is compared with the Grid dataSource. Thus, when a column is not defined in the Grid dataSource, it is obtained as null value and hence throws a null exception.
Solution
You need to ensure that the columns bound to the Grid are defined in the Grid dataSource before exporting the Grid.