選択した行をグリッドの最上部に移動する方法を理解しようとしています。非常に重要なのは、私がDevExpress Asp.Net MVC GridViewを使用していることです。選択した行に基づく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;
}
};
、私は上に選択された行を配置する必要がありますが、私は比較てる2行または列の選択状態を取得する方法がわかりません。コードサンプル:
デベックスバージョンは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 internets。 –
更新:あなたのコードがうまくコンパイルされている間。グリッドビューは実際にはこの列をソートしません。 –
あなたが試したことのある記事を更新して、私が戻ったときにそれを見てみましょう。あなたはリンクを見ましたか?今はAfk – Nkosi