Я пытаюсь выяснить, как привести мои выбранные строки в начало сетки. Очень важно, что я использую DevExpress Asp.Net MVC GridView.Devexpress MVC Gridview пользовательский сортировка на основе выбранных строк
У меня есть следующее, что является моей лучшей попыткой объединить буквально десятки не-решений. Пожалуйста, обратите внимание на комментарии:
settings.Columns.Add("customsort").Settings.SortMode =
DevExpress.XtraGrid.ColumnSortMode.Custom;
settings.CustomColumnSort += (sender, e) => {
if (e.Column.FieldName == "customsort")
{
//these following two lines are supposed to work according to the DX support team, but there is no "grid" object
bool isRow1Selected = grid.Selection.IsRowSelectedByKey(e.GetRow1Value(grid.KeyFieldName));
bool isRow2Selected = grid.Selection.IsRowSelectedByKey(e.GetRow2Value(grid.KeyFieldName));
}
e.Handled = isRow1Selected != isRow2Selected;
if (e.Handled)
{
//I don't even know whether this is right
e.Result = isRow1Selected ? 1 : -1;
}
};
Короче говоря, мне нужно поставить выбранные строки сверху, но я не знаю, как получить выбранное состояние двух строк или столбцов, я сравниваю.
DevEx версия 15,1
UPDATE: Пример кода:
settings.Columns.Add(column =>
{
//column.FieldName = "customsort";
column.FieldName = "customsort";
column.Caption = "customsort";
column.ColumnType = MVCxGridViewColumnType.Default;
//column.UnboundType = DevExpress.Data.UnboundColumnType.Integer;
column.Settings.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;
});
settings.CustomColumnSort += (sender, e) =>
{
var grid = (MVCxGridView)sender;
if (e.Column.FieldName == "customsort")
{
bool isRow1Selected = grid.Selection.IsRowSelectedByKey(e.GetRow1Value(grid.KeyFieldName));
bool isRow2Selected = grid.Selection.IsRowSelectedByKey(e.GetRow2Value(grid.KeyFieldName));
e.Result = isRow2Selected.CompareTo(isRow1Selected);
e.Handled = true;
}
};
Если я нажимаю на колонке «customsort», он действительно выполняет обратную передачу, но порядок сортировки не меняется. Так что, по крайней мере, я добираюсь куда-то, но я еще не совсем там.
Ну, я могу сделать свой столбец сортировки действительно. Он был просто включен, поэтому я мог вручную вызвать метод Customrow.Sort(), который сортировал бы по выбранному. Спасибо за это. 200 для вас. –
UPDATE: пока ваш код компилируется просто отлично. В этом столбце gridview фактически не сортируется. –
Обновить сообщение с того, что вы пробовали, и я посмотрю на него, когда вернусь. Вы посмотрели ссылки. Afk прямо сейчас – Nkosi