Как установить сортировку по умолчанию для DevExpress GridView - PullRequest
3 голосов
/ 05 мая 2011

На .net WinForm, DevExpress GridControl / GridView привязан к DataSet, как указать порядок сортировки по умолчанию?Тот, который используется, когда нет видимого GridColumn с SortOrder.

По умолчанию я установил сортировку для представления моего скрытого DateTimeStamp GridColumn.Конечно, он переопределяется пользователем, если пользователь нажимает на столбец.Пользователь может «Очистить сортировку», используя меню в столбце или нажав на столбец, удерживая нажатой клавишу Control.При этом строки больше не сортируются (или, может быть, по PK?), В то время как я хотел бы, чтобы они сортировались по DateTimeStamp.

Есть идеи?Может быть, подключив код, чтобы получить уведомление, когда пользователь "Очистить сортировку"?Я могу играть с GridView.PopupMenuShowing и GridStringId.MenuColumnClearSorting, чтобы обрабатывать случай, когда пользователь щелкает по меню.Но это не касается случая Control + click.

Кто-то сталкивался с той же проблемой и нашел (простое) решение?

Ответы [ 5 ]

2 голосов
/ 06 мая 2011

На вашем месте я бы отсортировал источник данных сетки на основе необходимого столбца. В этом случае, если условие сортировки gridView очищено конечным пользователем, данные будут отображаться в порядке, указанном вашим источником данных.

UPDATE Вот код, который должен работать для вас:

DataView dv = yourDataTable.DefaultView;
dv.Sort = "SomeField";
gridControl.DataSource = dv;

Кроме того, взгляните на следующую статью MSDN:

Свойство DataView.Sort

1 голос
/ 13 января 2015

Просто поставьте это после InitializeComponent(); на конструкторе

GridView1.Columns["FieldName"].SortOrder = ColumnSortOrder.Ascending;
1 голос
/ 05 мая 2011

Разве не было бы проще просто отключить сортировку конечного пользователя? Или я неправильно понял вашу проблему - т.е. вы хотите, чтобы их сортировка применялась после сортировки по умолчанию?

0 голосов
/ 16 мая 2013

GridControl.SortBy (DateTimeStampColumn, ColumnSortOrder.Descending);

0 голосов
/ 05 мая 2011

Вы можете добавить обработчик события для события GridView.EndSorting, и в этом обработчике проверить, есть ли какие-либо столбцы с SortIndex >= 0. Если нет, вы можете установить собственную сортировку.

...