Ich versuche herauszufinden, wie meine ausgewählten Zeilen an die Spitze des Rasters gebracht werden. Sehr wichtig ist, dass ich das DevExpress Asp.Net MVC GridView verwende.MVC Gridview benutzerdefinierte Sortierung basierend auf ausgewählten Zeilen zu entwickeln
Ich habe das Folgende, das ist mein bester Versuch, buchstäblich Dutzende von Nicht-Lösungen zu vermischen. Bitte beachten Sie die Kommentare:
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;
}
};
Kurz gesagt, ich brauche auf ausgewählten Zeilen zu setzen, aber ich weiß nicht, wie die ausgewählten Zustand der beiden Reihen zu bekommen oder Spalten Ich vergleiche.
Devex Version 15.1
UPDATE: Codebeispiel:
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;
}
};
Wenn ich auf der "CustomSort" Spalte klicken, wird es ein Postback durchführen, aber die Sortierreihenfolge ändert sich nicht. Zumindest komme ich irgendwohin, aber ich bin noch nicht ganz da.
Nun, ich kann meine benutzerdefinierte Sortierspalte alles wirklich machen. Es wurde einfach eingefügt, so dass ich manuell eine Customrow.Sort() -Methode aufrufen konnte, die stattdessen nach selected sortiert. Danke dafür. 200 Internets für Sie. –
UPDATE: während der Code kompiliert einfach gut. Die Gridview sortiert diese Spalte nicht. –
Aktualisiere den Beitrag mit dem, was du versucht hast, und ich werde es mir ansehen, wenn ich zurückkomme. Hast du dir die Links angesehen? Afk jetzt – Nkosi