I need to save the state of the grouping of a WinGrid in my form.
So I save the grouping orders in the Database, and then, when (re)loading my inherited UltraWinGrid, i do the following:
If Me.DisplayLayout.Bands.Count > 0 Then Me.DisplayLayout.Bands(0).ResetSortedColumns() For Each strColName As String In objGroupByColumnDictionary.Values Me.DisplayLayout.Bands(0).SortedColumns.Add(strColName, False, True) Next strColName End If
This code works... but for a single group column (!?) When I have multiple columns only the last added column is displayed in the groups....
How to fix it?
Update:
The code above was used in the Form's Constructor.
I need to "refresh" in after the form was displayed, to make it work like is should:
Private Sub SelectionAvancee_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown Me.ReloadResultGroupByColumns() End Sub
Private Sub ReloadResultGroupByColumns() '' reinitialise sortedColumns Dim sortedColumns As New List(Of String) For Each col As Infragistics.Win.UltraWinGrid.UltraGridColumn In grdResult.DisplayLayout.Bands(0).SortedColumns sortedColumns.Add(col.Key) Next col grdResult.DisplayLayout.Bands(0).ResetSortedColumns() For Each colKey As String In sortedColumns grdResult.DisplayLayout.Bands(0).SortedColumns.Add(colKey, False, True) Next colKey '''' End Sub
Hello serhiol,
Have you been able to resolve your issue ? If you still have any concerns or questions I will be glad to help. If you need any additional assistance don’t hesitate to ask.
Regards
There are different approaches to solve this task. Looking at your code, it seems to be correct. In my test sample it works properly. I didn`t find something wrong, so maybe the reasons for your issue could be in another place.
I think that we have better solution of your task. My suggestion is to save and load UltraGird`s layout using the methods
- ultraGrid1.DisplayLayout.Save();
- ultraGrid1.DisplayLayout.Load();
Let me know if you have any further questions.