0

MVC で Devexpress Grid Control を実装しています。javascript で現在の並べ替え列と並べ替え順序 (昇順/降順)が必要な時点で立ち往生しました。clientSide Event OnColumnSortingChanged(s , e)も試しましたが、gridview javascript オブジェクトからではなく、クリック イベントで列の名前のみを提供しています。

4

2 に答える 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 に答える