Несоответствия методов чтения () и запроса () источника данных KendoUI

При нажатии кнопки мне нужно прочитать первую страницу моих данных. Распространенный ответ — использовать метод query() источника данных, указав страницу и другие дополнительные значения через параметрMap. Проблема в том, что в моем источнике данных я также использую агрегаты, и методы query(), похоже, вообще не обрабатывают их. Я прав? Это потому, что только read() использует настройки «transport.read»? Есть ли другой способ сбросить сетку, привязанную к источнику данных, на первую страницу со всеми настройками источника данных?


person Matteo Piazza    schedule 12.12.2012    source источник


Ответы (2)


Да, приятель, есть специальный метод для пейджинга -> dataSource.page(3). Здесь ссылка из документации.

person Petur Subev    schedule 12.12.2012
comment
Хорошо, но что, если мне нужно изменить карту параметров перед вызовом page(1)? Можно ли программно переопределить параметрMap при каждом вызове? - person Matteo Piazza; 13.12.2012
comment
@Matteo для большинства свойств веб-элементов управления кендо, включая карту параметров для источника данных, вы можете заменить свойство js функцией, см. doc: docs.kendoui.com/api/framework/ - person Chris; 14.12.2012

Я решил свою проблему (прочитал первую страницу данных через источник данных с параметрами), используя «datasource.page(1)» и задав значения в parameterMap через «наблюдаемый» объект, поэтому они обновляются, когда я меняю свои параметры и отправлено через запрос "page(1)".

=== 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>
person Matteo Piazza    schedule 13.12.2012