Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Collapse]WinForms Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Expand]Common Features
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.DocumentView.Controls
  [Expand]DevExpress.LookAndFeel
  [Expand]DevExpress.LookAndFeel.Helpers
  [Expand]DevExpress.Skins
  [Expand]DevExpress.Snap
  [Expand]DevExpress.Snap.API.Native
  [Expand]DevExpress.Snap.Core
  [Expand]DevExpress.Snap.Core.API
  [Expand]DevExpress.Snap.Core.Fields
  [Expand]DevExpress.Snap.Core.Forms
  [Expand]DevExpress.Snap.Core.Options
  [Expand]DevExpress.Snap.Core.Services
  [Expand]DevExpress.Snap.Extensions
  [Expand]DevExpress.Snap.Extensions.Localization
  [Expand]DevExpress.Snap.Localization
  [Expand]DevExpress.Snap.Options
  [Expand]DevExpress.Snap.Services
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Animation
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Drawing
  [Expand]DevExpress.Utils.Menu
  [Expand]DevExpress.Utils.Taskbar
  [Expand]DevExpress.Utils.Taskbar.Core
  [Expand]DevExpress.Utils.UI.Localization
  [Expand]DevExpress.Utils.VisualEffects
  [Expand]DevExpress.Utils.Win
  [Expand]DevExpress.XtraBars
  [Expand]DevExpress.XtraBars.Alerter
  [Expand]DevExpress.XtraBars.Docking
  [Expand]DevExpress.XtraBars.Docking2010
  [Expand]DevExpress.XtraBars.Docking2010.Customization
  [Expand]DevExpress.XtraBars.Docking2010.Views
  [Expand]DevExpress.XtraBars.Docking2010.Views.NativeMdi
  [Expand]DevExpress.XtraBars.Docking2010.Views.Tabbed
  [Expand]DevExpress.XtraBars.Docking2010.Views.Widget
  [Expand]DevExpress.XtraBars.Docking2010.Views.WindowsUI
  [Expand]DevExpress.XtraBars.Localization
  [Expand]DevExpress.XtraBars.Navigation
  [Expand]DevExpress.XtraBars.Ribbon
  [Expand]DevExpress.XtraBars.Ribbon.Gallery
  [Expand]DevExpress.XtraBars.Ribbon.ViewInfo
  [Expand]DevExpress.XtraBars.ToastNotifications
  [Expand]DevExpress.XtraBars.Utils
  [Expand]DevExpress.XtraBars.WinRTLiveTiles
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Designer
  [Expand]DevExpress.XtraCharts.Wizard
  [Expand]DevExpress.XtraDataLayout
  [Expand]DevExpress.XtraDiagram
  [Expand]DevExpress.XtraDiagram.Options
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.ButtonPanel
  [Expand]DevExpress.XtraEditors.Calendar
  [Expand]DevExpress.XtraEditors.Camera
  [Expand]DevExpress.XtraEditors.Container
  [Expand]DevExpress.XtraEditors.Controls
  [Expand]DevExpress.XtraEditors.CustomEditor
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraEditors.Filtering
  [Expand]DevExpress.XtraEditors.Mask
  [Expand]DevExpress.XtraEditors.Persistent
  [Expand]DevExpress.XtraEditors.Repository
  [Expand]DevExpress.XtraEditors.ViewInfo
  [Expand]DevExpress.XtraFilterEditor
  [Expand]DevExpress.XtraGauges.Presets.Styles
  [Expand]DevExpress.XtraGauges.Win
  [Expand]DevExpress.XtraGauges.Win.Base
  [Expand]DevExpress.XtraGauges.Win.Gauges.Circular
  [Expand]DevExpress.XtraGauges.Win.Gauges.Digital
  [Expand]DevExpress.XtraGauges.Win.Gauges.Linear
  [Expand]DevExpress.XtraGauges.Win.Gauges.State
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraGrid.Columns
  [Expand]DevExpress.XtraGrid.EditForm
  [Expand]DevExpress.XtraGrid.FilterEditor
  [Expand]DevExpress.XtraGrid.Localization
  [Expand]DevExpress.XtraGrid.Views.BandedGrid
  [Expand]DevExpress.XtraGrid.Views.BandedGrid.ViewInfo
  [Collapse]DevExpress.XtraGrid.Views.Base
   [Collapse]BaseView Class
     BaseView Members
     BaseView Constructor
    [Expand]BaseView Properties
    [Collapse]BaseView Events
      BeforeLoadLayout Event
      Click Event
      DataSourceChanged Event
      DoubleClick Event
      GotFocus Event
      InvalidValueException Event
      KeyDown Event
      KeyPress Event
      KeyUp Event
      Layout Event
      LayoutUpgrade Event
      LostFocus Event
      MouseDown Event
      MouseEnter Event
      MouseLeave Event
      MouseMove Event
      MouseUp Event
      MouseWheel Event
      PaintStyleChanged Event
      PrintExportProgress Event
      PrintInitialize Event
      RowCountChanged Event
      ValidatingEditor Event
    [Expand]BaseView Methods
   [Expand]BaseViewAppearanceCollection Class
   [Expand]CellValueChangedEventArgs Class
    CellValueChangedEventHandler Delegate
   [Expand]ColumnEventArgs Class
    ColumnEventHandler Delegate
   [Expand]ColumnView Class
   [Expand]ColumnViewAppearances Class
   [Expand]ColumnViewOptionsBehavior Class
   [Expand]ColumnViewOptionsFilter Class
   [Expand]ColumnViewOptionsFind Class
   [Expand]ColumnViewOptionsSelection Class
   [Expand]ColumnViewOptionsView Class
   [Expand]ColumnViewPrintAppearances Class
   [Expand]CustomColumnDataEventArgs Class
    CustomColumnDataEventHandler Delegate
   [Expand]CustomColumnDisplayTextEventArgs Class
    CustomColumnDisplayTextEventHandler Delegate
   [Expand]CustomColumnSortEventArgs Class
    CustomColumnSortEventHandler Delegate
   [Expand]CustomDrawEventArgs Class
    CustomDrawEventHandler Delegate
   [Expand]CustomDrawObjectEventArgs Class
    CustomDrawObjectEventHandler Delegate
   [Expand]CustomRowCellEventArgs Class
   [Expand]DragObjectDropEventArgs Class
    DragObjectDropEventHandler Delegate
   [Expand]DragObjectOverEventArgs Class
    DragObjectOverEventHandler Delegate
   [Expand]DragObjectStartEventArgs Class
    DragObjectStartEventHandler Delegate
   [Expand]FilterControlEventArgs Class
    FilterControlEventHandler Delegate
   [Expand]FocusedColumnChangedEventArgs Class
    FocusedColumnChangedEventHandler Delegate
   [Expand]FocusedRowChangedEventArgs Class
    FocusedRowChangedEventHandler Delegate
    GridAnimationType Enumeration
   [Expand]GridCell Class
    GridRowCellState Enumeration
   [Expand]InvalidRowExceptionEventArgs Class
    InvalidRowExceptionEventHandler Delegate
   [Expand]PrintInitializeEventArgs Class
    PrintInitializeEventHandler Delegate
   [Expand]RowAllowEventArgs Class
    RowAllowEventHandler Delegate
   [Expand]RowCellAlignmentEventArgs Class
    RowCellAlignmentEventHandler Delegate
   [Expand]RowCellCustomDrawEventArgs Class
    RowCellCustomDrawEventHandler Delegate
   [Expand]RowCellObjectCustomDrawEventArgs Class
   [Expand]RowEventArgs Class
    RowEventHandler Delegate
   [Expand]RowFilterEventArgs Class
    RowFilterEventHandler Delegate
   [Expand]RowObjectCustomDrawEventArgs Class
    RowObjectCustomDrawEventHandler Delegate
   [Expand]RowObjectEventArgs Class
    RowObjectEventHandler Delegate
   [Expand]RowPreviewCustomDrawEventArgs Class
    ScrollVisibility Enumeration
    ShowButtonModeEnum Enumeration
    ShowFilterPanelMode Enumeration
   [Expand]ValidateRowEventArgs Class
    ValidateRowEventHandler Delegate
   [Expand]ViewBaseOptions Class
   [Expand]ViewFilter Class
   [Expand]ViewPrintOptionsBase Class
  [Expand]DevExpress.XtraGrid.Views.Base.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Card
  [Expand]DevExpress.XtraGrid.Views.Card.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Grid
  [Expand]DevExpress.XtraGrid.Views.Grid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Layout
  [Expand]DevExpress.XtraGrid.Views.Layout.Events
  [Expand]DevExpress.XtraGrid.Views.Layout.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Printing
  [Expand]DevExpress.XtraGrid.Views.Tile
  [Expand]DevExpress.XtraGrid.Views.WinExplorer
  [Expand]DevExpress.XtraGrid.WinExplorer
  [Expand]DevExpress.XtraLayout
  [Expand]DevExpress.XtraLayout.Customization
  [Expand]DevExpress.XtraLayout.HitInfo
  [Expand]DevExpress.XtraLayout.Localization
  [Expand]DevExpress.XtraLayout.Utils
  [Expand]DevExpress.XtraMap
  [Expand]DevExpress.XtraMap.Printing
  [Expand]DevExpress.XtraNavBar
  [Expand]DevExpress.XtraNavBar.ViewInfo
  [Expand]DevExpress.XtraPdfViewer
  [Expand]DevExpress.XtraPdfViewer.Commands
  [Expand]DevExpress.XtraPdfViewer.Localization
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.Control
  [Expand]DevExpress.XtraPrinting.Preview
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Localization
  [Expand]DevExpress.XtraRichEdit.Menu
  [Expand]DevExpress.XtraScheduler
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Printing
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Reporting.UI
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Localization
  [Expand]DevExpress.XtraSplashForm
  [Expand]DevExpress.XtraSplashScreen
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Services
  [Expand]DevExpress.XtraTab
  [Expand]DevExpress.XtraTab.Buttons
  [Expand]DevExpress.XtraTab.ViewInfo
  [Expand]DevExpress.XtraTabbedMdi
  [Expand]DevExpress.XtraToolbox
  [Expand]DevExpress.XtraTreeList
  [Expand]DevExpress.XtraTreeList.Columns
  [Expand]DevExpress.XtraTreeList.Data
  [Expand]DevExpress.XtraTreeList.Localization
  [Expand]DevExpress.XtraTreeList.Menu
  [Expand]DevExpress.XtraTreeList.Nodes
  [Expand]DevExpress.XtraTreeList.Nodes.Operations
  [Expand]DevExpress.XtraTreeList.StyleFormatConditions
  [Expand]DevExpress.XtraTreeMap
  [Expand]DevExpress.XtraVerticalGrid
  [Expand]DevExpress.XtraVerticalGrid.Events
  [Expand]DevExpress.XtraVerticalGrid.Localization
  [Expand]DevExpress.XtraVerticalGrid.Rows
  [Expand]DevExpress.XtraWaitForm
  [Expand]DevExpress.XtraWizard
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

BaseView.LayoutUpgrade Event

Occurs when a layout is restored from storage (a stream, xml file or system registry) and its version differs from the version of the current View's layout.

Namespace:DevExpress.XtraGrid.Views.Base
Assembly:DevExpress.XtraGrid.v17.1.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type LayoutUpgradeEventArgs containing data related to this event.

The following LayoutUpgradeEventArgs properties provide information specific to this event.
Property Description
NewHiddenItems Returns an array of items that exist in the current control but do not exist in the layout being loaded. These items are hidden. This property is in effect for the LayoutControl.
PreviousVersion Returns the textual representation of the previous layout version.

Expanded Remarks

This event lets you customize the View's layout immediately after an earlier version of the View's layout has been loaded from storage (a stream, xml file or system registry). For instance, the layout being loaded has overridden specific filtering or grouping settings of the new layout. So the LayoutUpgrade event can be handled to restore layout settings specific to the new layout.

To enable the LayoutUpgrade event to be called you need to assign different versions to different layouts via the DevExpress.Utils.OptionsLayoutBase.LayoutVersion property of the OptionsLayout object.

Consider an example. When the first version of an application was released the version of the grid's layout was not specified (it was set to an empty string, by default). While running this application an end-user hid specific columns and saved the layout, say, to an XML file. Then a new version of the application was designed (for instance, it added new columns and data could be grouped by any of these columns). At design time the new layout in the new application should be assigned a specific version (say, "1.1"). In this case, when an end-user runs the new application and loads the previously saved layout from the XML file the LayoutUpgrade event will be fired since the versions of the current layout ("1.1") and the layout being loaded ("") won't match. In the LayoutUpgrade event handler you can specify the positions of the newly added columns and restore grouping by these columns, if required.

If versions of the current layout and layout being loaded match, the LayoutUpgrade event will not be fired.

The ColumnView.OptionsLayout property provides multiple settings which control how the layout is restored from the storage. It also specifies which settings should be stored when the layout is saved to storage.

Expanded See Also

How would you rate this topic?​​​​​​​