Search code examples
c#.netinfragisticsultrawingrid

How to sort an UltraGrid by multiple columns programmatically?


Say we have an UltraGrid. How can I sort it programmatically first by column A, then B, then C.

Thanks!


Solution

  • Documentation here: http://help.infragistics.com/Help/Doc/WinForms/2011.2/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v11.2~Infragistics.Win.UltraWinGrid.UltraGridBand~SortedColumns.html

    You can just set the sort indicator (order is important), code taken from above link:

    UltraGridBand band = this.ultraGrid1.DisplayLayout.Bands[0];
    
    // Sort the rows by Country and City fields. Notice the order in which these columns
    // are set. We want to sort by Country and then sort by City and in order to do that
    // we have to set the SortIndicator property in the right order.
    band.Columns["Country"].SortIndicator = SortIndicator.Ascending;
    band.Columns["City"].SortIndicator    = SortIndicator.Ascending;
    
    // You can also sort (as well as group rows by) columns by using SortedColumns
    // property off the band.
    band.SortedColumns.Add( "ContactName", false, false );
    

    More information on the second method can be found here: http://help.infragistics.com/Help/NetAdvantage/NET/2008.2/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v8.2~Infragistics.Win.UltraWinGrid.SortedColumnsCollection~Add.html