Grid KendoUI read()和query()数据源方法不一致

Grid KendoUI read()和query()数据源方法不一致,grid,datasource,kendo-ui,Grid,Datasource,Kendo Ui,点击一个按钮,我需要阅读我的数据的第一页。常见的答案是使用datasource的query()方法,通过parameterMap指定页面和其他附加值。问题是,在我的数据源中,我也在使用聚合,而query()方法似乎根本无法处理它们。 我说得对吗?是因为只有read()使用“transport.read”设置吗? 是否有其他方法将绑定到数据源的网格重置为包含所有数据源设置的第一页?是的,有特定的分页方法->数据源。第(3)页。是文档中的链接。是的,有特定的分页方法->数据源。第(3)页。是文档中的

点击一个按钮,我需要阅读我的数据的第一页。常见的答案是使用datasource的query()方法,通过parameterMap指定页面和其他附加值。问题是,在我的数据源中,我也在使用聚合,而query()方法似乎根本无法处理它们。 我说得对吗?是因为只有read()使用“transport.read”设置吗?
是否有其他方法将绑定到数据源的网格重置为包含所有数据源设置的第一页?

是的,有特定的分页方法->数据源。第(3)页。是文档中的链接。

是的,有特定的分页方法->数据源。第(3)页。是文档中的链接。

我使用“datasource.page(1)”并通过“observable”对象设置parameterMap中的值解决了我的问题(通过datasource读取数据的第一页,带有参数),因此当我更改参数并通过“page(1)”请求发送时,这些值会更新

==JAVASCRIPT===
var vm=剑道。可观察({
参数1:“值1”,
参数2:“值2”,
参数3:“值3”
});
var datasource=new kendo.data.datasource({
运输:{
parameterMap:函数(输入参数、操作){
返回JSON.stringify($.extend({
param1:vm.get(“param1”),
param2:vm.get(“param2”),
param3:vm.get(“param3”),
));
}
}
});
$(“#btn”).bind(“单击”,函数(e){
//如果需要,设置调用参数
vm.set(“参数1”、“新值”);
数据源。第(1)页;
});
==HTML===
获取数据
我使用“datasource.page(1)”并通过“observable”对象设置parameterMap中的值解决了我的问题(通过datasource和参数读取数据的第一页),因此当我更改参数并通过“page(1)”请求发送时,这些值会被更新

==JAVASCRIPT===
var vm=剑道。可观察({
参数1:“值1”,
参数2:“值2”,
参数3:“值3”
});
var datasource=new kendo.data.datasource({
运输:{
parameterMap:函数(输入参数、操作){
返回JSON.stringify($.extend({
param1:vm.get(“param1”),
param2:vm.get(“param2”),
param3:vm.get(“param3”),
));
}
}
});
$(“#btn”).bind(“单击”,函数(e){
//如果需要,设置调用参数
vm.set(“参数1”、“新值”);
数据源。第(1)页;
});
==HTML===
获取数据

Ok,但是如果在调用“第(1)页”之前需要更改参数Map怎么办?是否可以在每次调用时以编程方式覆盖parameterMap?@Matteo对于剑道web控件中的大多数属性,包括数据源的parameterMap,您可以使用函数替换js属性,请参阅doc:Ok,但是如果在调用“第(1)页”之前我需要更改parameterMap怎么办?是否可以在每次调用时以编程方式覆盖parameterMap?@Matteo对于剑道web控件中的大多数属性,包括数据源的参数映射,您可以使用函数替换js属性,请参阅文档:
=== JAVASCRIPT ===
var vm = kendo.observable({
    param1: "value1",
    param2: "value2",
    param3: "value3"
});

var datasource = new kendo.data.DataSource({
    transport: {
        parameterMap: function (inputParams, operation) {
            return JSON.stringify($.extend({
                param1: vm.get("param1"),
                param2: vm.get("param2"),
                param3: vm.get("param3"),
            ));
        }
    }
});

$("#btn").bind("click", function(e) {
    // set call parameters, if needed
    vm.set("param1", "new value");
    datasource.page(1);
});


=== HTML ===
<button class="k-button" id="btn">GetData</button>