web-dev-qa-db-ja.com

JSを使用する剣道グリッドデータソースの変更

剣道のグリッドがあり、これを使用するデータソースを設定します

.DataSource(dataSource => dataSource
                                .Ajax()
                                .PageSize(20)

                                .Read(read => read.Action("GetWorker", "Worker"))

ページにボタンがあり、このボタンを押したときにデータソースを変更したい(Java script)を使用します。

.DataSource(dataSource => dataSource
                                .Ajax()
                                .PageSize(20)

                                .Read(read => read.Action("GetDisabled", "Worker"))

私はこのようにします

var grid = $("grid").data("kenodGrid");
            grid.dataSource().read()

しかし、grid.dataSource()の後に何をすべきかわかりません。データソースを変更するにはどうすればよいですか? Thnaksとあなたの助けを希望

20
Std_Net

最初に新しいDataSourceを作成する必要があると思います(リモートデータについては http://demos.kendoui.c​​om/web/datasource/remote-data.html を参照)

var dataSource = new kendo.data.DataSource({
    data: [
        { name: "John Doe", age: 33 }
    ]
});

そして、setDataSourceメソッドを使用してグリッドに追加します( http://docs.kendoui.c​​om/api/web/grid#methods-setDataSource

var grid = $("#grid").data("kendoGrid");
grid.setDataSource(dataSource);
39
Lopo

読み取りのアクションを変更したいので、それを行うことができます。 この質問 によると、dataSourceの読み取りURLを設定し、次のようなものでグリッドデータを更新できます。

var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.url = "newUrlPath";
grid.dataSource.read();
grid.refresh();

実際にdataSourceを変更するのではなく、データを変更し、jsonとしてajaxリクエストからアイテムのリストを取得する場合は、誰かがそれを望む場合の例として、それを行う方法を書き留めます。

var jsonData = ... // From some ajax response
var newKendoDatasource = newKendoDS(jsonData);
$("#grid").data("kendoGrid").dataSource.data(newKendoDatasource._data);

関数は上記のようなものです

function newKendoDS(ndata) {
    var datasource = new kendo.data.DataSource({ data: ndata });
    datasource.read(); // In order to refresh
    return datasource;
}
2