13

Kendo UI グリッドでグループ化の順序を制御する方法はありますか? 他のすべてのグループの前に移動したいグループがありますが、Kendo UI グリッドはグループをアルファベット順に並べ替えているようです。グループ名にスペースを追加すると機能することはわかっていますが、それは非常にハックのようです。

ありがとうレオ

4

9 に答える 9

4

Try AddDescending and AddAscending, see examples below

@(Html.Kendo().Chart<T>()
[... other code ...]
.DataSource(ds => ds
    .Read(read => read.Action("action", "controller"))
    .Group(g => g.AddDescending(model=> model.property)) // <-- subtle difference here!
)
[... other code ...]
)

http://www.telerik.com/forums/stacked-chart-legend-order

于 2016-02-25T18:30:14.297 に答える
3

Kendo のグループ化では、配列内のすべての要素が特定のフィールド (たとえば、fooBar) で並べ替えられ、並べ替えられた要素が繰り返されます。一言で言えば、疑似コードで:

if (element[i].fooBar!= element[i-1].fooBar) { 
    StartNewGroup(element[i]);
} else {
    AddToLastGroup(element[i]);
}

グループ化を行うにはソートされた配列が必要なため、ソートを変更するのは難しいです。内部groupBy()関数をオーバーライドするコードを作成しました。これにより、グループ化された結果を好きなように並べ替えることができます。

function overrideKendoGroupBy() {
    var origFunc = kendo.data.Query.prototype.groupBy;
    kendo.data.Query.prototype.groupBy = function (descriptor) {
        var q = origFunc.call(this, descriptor);

        var data = SortYourData(q.data, descriptor.dir);

        return new kendo.data.Query(data);
    };
}

overrideKendoGroupBy()ページがロードされた後、ある時点で呼び出します。ここで、 がグループ化の配列であり、isまたはであるSortYourData()関数を実装するだけです。th グループに含まれる元のデータ ソースの要素を含む配列があります。q.datadescriptor.dir"asc""desc"q.data[n]itemsn

注: この解決策は、ページングを使用していない場合にのみ機能します。グループ化が適用される前にページが分割されるため、データが複数のページにまたがる場合、すべての賭けは無効になります。

于 2015-12-09T21:26:05.400 に答える
0

グループ化がグリッドでサポートされていない場合のカスタムの並べ替え方向- グループ化がない場合、グループは列が並べ替えられるのと同じ方法で並べ替えられます (クライアントの並べ替えを使用する場合)。ソート方向は、JavaScript のデフォルトのソートと同じです。

于 2013-05-05T18:30:55.773 に答える
0

データソースを定義した後にクエリを追加できますが、これはうまくいくようです

 related.query({
        sort: { field: "Sort", dir: "asc"},
        group: { field: "CategoryName" },
        pageSize: 50
    });

関連する場所はデータソースの名前です

于 2015-04-28T17:22:09.843 に答える