Как сортировать UltraGrid по нескольким столбцам программно? - PullRequest
14 голосов
/ 08 февраля 2011

Скажем, у нас есть UltraGrid. Как я могу отсортировать это программно сначала по столбцу A, затем B, затем C.

Спасибо!

Ответы [ 2 ]

23 голосов
/ 08 февраля 2011

Документация здесь: http://help.infragistics.com/Help/Doc/WinForms/2011.2/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v11.2~Infragistics.Win.UltraWinGrid.UltraGridBand~SortedColumns.html

Вы можете просто установить индикатор сортировки (порядок важен), код взят из ссылки выше :

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 );

Более подробную информацию о втором методе можно найти здесь: http://help.infragistics.com/Help/NetAdvantage/NET/2008.2/CLR2.0/html/Infragistics2.Win.UltraWinGrid.v8.2~Infragistics.Win.UltraWinGrid.SortedColumnsCollection~Add.html

2 голосов
/ 15 июня 2012

Если вы также хотите автоматически группировать по ContactName, это может сделать это для вас:

band.SortedColumns.Add( "ContactName", false, true);

Обратите внимание на использование true в качестве последнего параметра

...