Skip to main content

How to: Validate the ObjectDataSource Contained in the Spreadsheet MailMerge Template

  • 2 minutes to read

Loading the mail merge templates with the ObjectDataSource data source may cause undesired behavior if the data source is contained in a compiled assembly. This example illustrates how to use a custom service that implements the IObjectDataSourceValidationService interface to validate an ObjectDataSource contained in the loaded mail merge template and prevent the data source from loading.

public class MyObjectDataSourceValidationService : IObjectDataSourceValidationService {
    public void Validate(IEnumerable<ObjectDataSource> dataSources)
    {
        // Do nothing to allow the control to load data.
        // Clear the DataSource and DataMember properties to prohibit data loading.
        foreach (ObjectDataSource ds in dataSources)
        {
            if (ds.Name != "EmployeeDS")
            {
                ds.DataSource = null;
                ds.DataMember = null;
            }
        };
    }
}
using DevExpress.Spreadsheet;
using System.Diagnostics;
static void Main()
{
    Workbook workbook = new Workbook();
    workbook.ReplaceService<IObjectDataSourceValidationService>(new MyObjectDataSourceValidationService());
    workbook.LoadDocument("EmployeesMailMergeTemplate.xlsx");
    var result = workbook.GenerateMailMergeDocuments();
    result[0].SaveDocument("result.xlsx");
    Process.Start("result.xlsx");
}