Источник данных сетки кендо не обновляется, когда pu sh новые данные - PullRequest
0 голосов
/ 02 апреля 2020

Я получил объект массива, который может выбрать покупателя, если выберу, я получу sh их данные до selectedBuyers, если отмена выбора отфильтрует от selectedBuyers. Поэтому я хотел бы обновить сетку кендо, пока я выполняю pu sh / filter array.

У меня есть тест, когда я пу sh создаю новый объект в массиве, я вызываю $("#my-grid").data("kendoGrid").dataSource.read(); у сетки есть обновление , это работает нормально. Однако, когда я отфильтрую некоторый объект из массива и вызову $("#my-grid").data("kendoGrid").dataSource.read(); или $("#my-grid").data("kendoGrid").refresh(); или оба, сетка все еще показывает старые данные.

var selectedBuyers = [{
    "Name":"A",
    "Price":"",
    "Total":""
},{
    "Name":"B",
    "Price":"",
    "Total":""
}];

$("#my-grid").kendoGrid({
    dataSource: {
        data: selectedBuyers,
        schema: {
            model: {
                fields: {
                    Name: { type: "string" },
                    Price: { type: "string" },
                    Total: { type: "string" },
                }
            }
        },
        pageSize: 5,
        serverPaging: true,
        serverFiltering: true,
        serverSorting: true
    },
    pageable: {
        pageSizes: [5, 10, 15, 20],
    },
    scrollable: true,
    dataBound: onbuyerDataBound,
    columns: [ {
        field: "Name",
        title: "Name",
        width: 100
    },
    {
        field: "Price",
        title: "Price",
        width: 100
        },
    {
        field: "Total",
        title: "Total",
        width: 110,
    }]
});

1 Ответ

0 голосов
/ 06 апреля 2020

Вы не можете просто отфильтровать данные, которые вам не нужны. Вам нужно remove это из dataSource.

  var dataSource = new kendo.data.DataSource({
    data: [
      { id: 1, name: "Jane Doe" },
      { id: 2, name: "John Doe" }
    ],
    schema: {
      model: { id: "id" }
    }
  });

  $("#grid").kendoGrid({
    dataSource: dataSource
  })

  $("#remove").kendoButton({
    click: function() {
        var dataItem = dataSource.at(0);
        dataSource.remove(dataItem);
    }
  });

Рабочий пример: Удалить элемент сетки

...