web-dev-qa-db-ja.com

Kendo UIグリッドのローカルデータソース列のデフォルトのソート

ローカルデータソースから私の剣道UIグリッドにデフォルトのソート列を設定しようとしています。私が置くべきであることをすべて読んだ:

sort: { field: "price", dir: "desc" }

データソースに。私はこれを試しましたが、まだ機能していません(次の例の下部を参照)。

ここに完全なコードがありますが、どこが間違っていますか?

$('#grid').kendoGrid({
                dataSource: [
                    {
                        date: "Feb 13 2014",
                        price: 5,
                    },
                    {
                        date: "Feb 15 2014",
                        price: 7,
                    },
                    {
                        date: "Feb 12 2014",
                        price: 6,
                    }
                ],
                height:500,
                sortable: true,
                pageable: false,
                columns: [
                    {
                        field: "date",
                        title: "Date"
                    },
                    {
                        field: "price",
                        title: "Price",
                    }
                ],
                sort: {field: "price", dir: "desc"}
            });
28
jonnow

sort行を間違った場所で定義しています。これをグリッドのプロパティの1つとして配置していますが、それは(おっしゃるように)データソースのプロパティの1つです。

データソースプロパティの子として配置します。

$('#grid').kendoGrid({
    dataSource: {
        data: [{
            date: "Feb 13 2014",
            price: 5,
        }, {
            date: "Feb 15 2014",
            price: 7,
        }, {
            date: "Feb 12 2014",
            price: 6,
        }],
        sort: {
            field: "price",
            dir: "desc"
        }
    },
    height: 500,
    sortable: true,
    pageable: false,
    columns: [{
        field: "date",
        title: "Date"
    }, {
        field: "price",
        title: "Price",
    }],
});

それでも動作しない場合は、回避するjsFiddleを提供できます。

48
gitsitgo

最終的にKendo UIにレンダリングされるTelerik MVC Controlを使用している場合

.DataSource(dataSource => dataSource
        .Ajax()
        .Sort(sort => sort.Add("City").Ascending()) // <-- initial sort expression
        .Read(read => read.Action("Index", "Home"))
    )
3
Iman Abidi