I cant print grid.

When i try to print my grid i have this error: "Value cannot be null."

This is my code:
            SfDataGrid dataGrid = new SfDataGrid();
            dataGrid.Columns.Add(new GridTextColumn() { HeaderText = "Order ID", MappingName = "OrderID" });
            dataGrid.Columns.Add(new GridTextColumn() { HeaderText = "Customer ID", MappingName = "CustomerID" });
            dataGrid.Columns.Add(new GridTextColumn() { HeaderText = "Customer Name", MappingName = "CustomerName" });
            dataGrid.Columns.Add(new GridTextColumn() { HeaderText = "Country", MappingName = "Country" });
            dataGrid.Columns.Add(new GridNumericColumn() { HeaderText = "Unit Price", MappingName = "UnitPrice" });
            dataGrid.PrintSettings = new PrintSettings();
            dataGrid.PrintSettings.PrintPageOrientation = PrintOrientation.Portrait;
            dataGrid.Print();


1 Reply

JG Jai Ganesh S Syncfusion Team September 1, 2016 12:52 PM UTC

Hi Andrew,

Thanks for contacting Syncfusion Support.

In SfDataGrid  it is not possible to perform the Print operation without creating the SfDataGrid.View. But you can achieve your requirement “printing a SfDataGrid from code behind” by using the below code example, Here we have created the SfDataGrid.View manually.

C# 

SfDataGrid grid = new SfDataGrid(); 
            grid.ItemsSource = (new OrderInfoViewModel()).OrdersListDetails; 
 
            GridQueryableCollectionViewWrapper wrapper = new GridQueryableCollectionViewWrapper((this.DataContext as OrderInfoViewModel).OrdersListDetails, grid); 
            grid.ItemsSource = wrapper; 
            grid.Columns.Add(new GridTextColumn() { MappingName = "CustomerID" }); 
            grid.Columns.Add(new GridTextColumn() { MappingName = "Discount" }); 
 
            grid.PrintSettings = new PrintSettings(); 
            grid.PrintSettings.PrintManagerBase = new PrintManagerBase(wrapper); 
            grid.PrintSettings.PrintPageOrientation = PrintOrientation.Portrait; 
            grid.PrintSettings.PrintManagerBase.Print();

 

We have prepared a sample as per your requirement and you can download the sample from the below location,

Sample :  

Regards,  
Jai Ganesh S 




Loader.
Up arrow icon