Javascript 在推送新数据时,剑道网格数据源未更新

Javascript 在推送新数据时,剑道网格数据源未更新,javascript,jquery,arrays,kendo-ui,kendo-grid,Javascript,Jquery,Arrays,Kendo Ui,Kendo Grid,我得到了一个可以选择买家的数组对象,如果选择,我将把他们的数据推送到SelectedBuyer,如果取消选择,将从SelectedBuyer中筛选出来。所以我想在推送/过滤阵列时更新剑道网格 我测试的是,当我将新对象推送到数组时,我调用$my-grid.datakendoGrid.dataSource.read;网格已经更新,这项工作很好。然而,当我从数组中筛选出一些对象,并调用$my-grid.datakendoGrid.dataSource.read;或者$my-grid.datakendo

我得到了一个可以选择买家的数组对象,如果选择,我将把他们的数据推送到SelectedBuyer,如果取消选择,将从SelectedBuyer中筛选出来。所以我想在推送/过滤阵列时更新剑道网格

我测试的是,当我将新对象推送到数组时,我调用$my-grid.datakendoGrid.dataSource.read;网格已经更新,这项工作很好。然而,当我从数组中筛选出一些对象,并调用$my-grid.datakendoGrid.dataSource.read;或者$my-grid.datakendoGrid.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,
    }]
});

你不能只过滤掉你不想要的数据。您需要将其从数据源中删除

工作示例:

当我从数组中筛选出某个对象时,您的确切意思是什么?
  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);
    }
  });