Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 84751

Problem with LoadLayout

$
0
0

I am posting this in case it is helpful to anyone. It solves the following cases: 

  1. Renamed/removed/added properties in your Classes
  2. Removed unused columns from the Layout

Your user will just need to save the Layout once. 

 

privatevoidRadGridViewReportData_DataBindingComplete(objectsender, GridViewBindingCompleteEventArgs e)
{
    if(File.Exists(_layout))
    {
        radGridViewReportData.LoadLayout(_layout);
 
        // A System.Type
        var reportProperties = _report.GetDataSourceType().GetProperties().ToArray();
 
        foreach(var prop inreportProperties)
        {
            if(!radGridViewReportData.Columns.Contains(prop.Name))
            {
                // Add columns to the Grid
                GridViewDataColumn dataColumn = GridViewHelper.AutoGenerateGridColumn(prop.PropertyType, null);
                dataColumn.Name = prop.Name;
                dataColumn.FieldName = prop.Name;
                dataColumn.HeaderText = ToCamelCaseWithSpaces(prop.Name);
                radGridViewReportData.Columns.Add(dataColumn);
            }
        }
 
        foreach(var col inradGridViewReportData.Columns.ToArray())
        {
            if(reportProperties.Single(x => x.Name == col.FieldName) == null)
            {
                // Remove columns from the Grid
                radGridViewReportData.Columns.Remove(col);
            }
        }
    }
    else
    {
        foreach(GridViewDataColumn i inradGridViewReportData.Columns)
        {
            i.HeaderText = ToCamelCaseWithSpaces(i.HeaderText);
        }
 
        radGridViewReportData.BestFitColumns();
    }
}

Viewing all articles
Browse latest Browse all 84751

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>