This example is based on the T146962: GridView - How to track ClientLayout with a separate ListBox one. It illustrates how to programmatically Save/Load the last ClientLayout within the Session. In real scenarios, it is possible to use a real database (for example, with a client profile data) instead:
Note that the same behavior can be mimic via the GridView's SettingsCookies:
However, in this case, the last ClientLayout is stored within an end-user's browser (i.e., on the client side).
See Also:
T146962: GridView - How to track ClientLayout with a separate ListBox
[C#]@Html.DevExpress().GridView(settings=>{...settings.ClientLayout=(s,e)=>{switch(e.LayoutMode){caseClientLayoutMode.Loading://Load Last ClientLayout Via First Loadif(Session["Layout"]!=null){e.LayoutData=Session["Layout"].ToString();}break;caseClientLayoutMode.Saving://Save Last ClientLayout AutomaticallySession["Layout"]=e.LayoutData;break;}};}).Bind(Model).GetHtml()
[VB.NET]@Html.DevExpress().GridView( _Sub(settings) ... settings.ClientLayout = _Sub(s, e)SelectCase e.LayoutModeCase ClientLayoutMode.Loading'Load Last ClientLayout Via First LoadIf Session("Layout") IsNot NothingThen e.LayoutData = Session("Layout").ToString()EndIfCase ClientLayoutMode.Saving'Save Last ClientLayout Automatically Session("Layout") = e.LayoutDataEndSelectEndSubEndSub).Bind(Model).GetHtml()
Note that the same behavior can be mimic via the GridView's SettingsCookies:
[C#]@Html.DevExpress().GridView(settings=>{...settings.SettingsCookies.Enabled=true;}).Bind(Model).GetHtml()
[VB.NET]@Html.DevExpress().GridView( _Sub(settings) ... settings.SettingsCookies.Enabled = TrueEndSub).Bind(Model).GetHtml()
However, in this case, the last ClientLayout is stored within an end-user's browser (i.e., on the client side).
See Also:
T146962: GridView - How to track ClientLayout with a separate ListBox