MVC で Devexpress Grid Control を実装しています。javascript で現在の並べ替え列と並べ替え順序 (昇順/降順)が必要な時点で立ち往生しました。clientSide Event OnColumnSortingChanged(s , e)も試しましたが、gridview javascript オブジェクトからではなく、クリック イベントで列の名前のみを提供しています。
1798 次
2 に答える
1
調査の結果、答えが得られました...
以下のように、部分ビューのコントロールに CustomJsProperty を追加する必要があります
settings.CustomJSProperties = (s, e) =>
{
var Grid = s as MVCxGridView;
var result = new System.Collections.Hashtable();
foreach (var col in Grid.AllColumns)
{
var dataCol = col as GridViewDataColumn;
if (dataCol != null)
{
if (dataCol.SortIndex == 0)
{
e.Properties["cpColumnsProp"] = new Dictionary<string, object>()
{
{ "sortcolumn", dataCol.FieldName },
{ "sortorder", ((Convert.ToString(dataCol.SortOrder).Equals("Ascending")) ? "asc" : "desc")}
};
}
}
}
};
次のように ColumnSortingChange イベントを処理します。
function gvChartList_OnColumnSortingChanged(s, e) {
$("#hdsortname").val(e.column.fieldName); // contains the sort column name
$("#hdsortorder").val(((s.cpColumnsProp.sortcolumn == e.column.fieldName) ? "desc" : "asc")); // contains the sort column order
}
最後になりましたが、列のデフォルトのソートインデックスとソート順を定義する必要があります
settings.Columns.Add(col =>
{
// column details
col.SortIndex = 0;
col.SortAscending();
});
于 2014-11-07T14:38:19.983 に答える