This question is locked. New answers and comments are not allowed.
I have a SL3 Telerik grid that allows grouping and exporting that grouped grid.
If I export that grid when it is grouped by a column that has a null value, I get the following exception:
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Controls.ExportExtensions.GetRowValues(GridViewDataControl source, IList`1 records, StringBuilder& builder, ExportFormat format)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, IList`1 records, Boolean includeHeader)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, Boolean includeHeader)
at ProcessManager.Silverlight.MainPage.ExportGridDataButton_Click(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandler.Invoke(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
Message: Object reference not set to an instance of an object.
StackStrace: at Telerik.Windows.Controls.ExportExtensions.GetRowValues(GridViewDataControl source, IList`1 records, StringBuilder& builder, ExportFormat format)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, IList`1 records, Boolean includeHeader)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, Boolean includeHeader)
at ProcessManager.Silverlight.MainPage.ExportGridDataButton_Click(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandler.Invoke(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
Here is my code to export the grid data:
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
If I export that grid when it is grouped by a column that has a null value, I get the following exception:
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Controls.ExportExtensions.GetRowValues(GridViewDataControl source, IList`1 records, StringBuilder& builder, ExportFormat format)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, IList`1 records, Boolean includeHeader)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, Boolean includeHeader)
at ProcessManager.Silverlight.MainPage.ExportGridDataButton_Click(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandler.Invoke(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
Message: Object reference not set to an instance of an object.
StackStrace: at Telerik.Windows.Controls.ExportExtensions.GetRowValues(GridViewDataControl source, IList`1 records, StringBuilder& builder, ExportFormat format)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, IList`1 records, Boolean includeHeader)
at Telerik.Windows.Controls.ExportExtensions.ToHtml(GridViewDataControl source, Boolean includeHeader)
at ProcessManager.Silverlight.MainPage.ExportGridDataButton_Click(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandler.Invoke(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
Here is my code to export the grid data:
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------
string content = grid.ToHtml( true );
string extension = "xls";
SaveFileDialog dialog = new SaveFileDialog()
{
DefaultExt = extension,
Filter =
String.Format( "{1} files (*.{0})|*.{0}|All files (*.*)|*.*", extension, "Excel files" ),
FilterIndex = 1
};
if( dialog.ShowDialog() == true )
{
using( Stream stream = dialog.OpenFile() )
{
Byte[] bytes = System.Text.Encoding.UTF8.GetBytes( content );
stream.Write( bytes, 0, bytes.Length );
stream.Close();
}
}
