0

How can i filter kendo datasource with operator "in"? Example:

var original_data = [
    {"group": [1, 2], "name": "Coca Cola"},
    {"group": [1, 3], "name": "Pizza"}
];
function filter_articles(original_data, group) {
    return new kendo.data.DataSource({
        data: original_data,
        filter: { field: 'group', operator: 'in', value: parseInt(group) }
    });
}
Lars Höppner
  • 18,252
  • 2
  • 45
  • 73
Mirza Delic
  • 4,119
  • 12
  • 55
  • 86

1 Answers1

1

The DataSource filter option doesn't support this, so you'll have to filter the data before creating the data source, e.g. like this:

var original_data = [{
    "group": [1, 2],
    "name": "Coca Cola"
}, {
    "group": [1, 3],
    "name": "Pizza"
}];

function filter_articles(original_data, group) {
    var filtered = original_data.filter(function (item) {
        return item.group.indexOf(group) !== -1;
    });

    var ds = new kendo.data.DataSource({
        data: filtered
    });
    ds.read();

    return ds;
}

var filteredDs = filter_articles(original_data, 3);

(demo)

Lars Höppner
  • 18,252
  • 2
  • 45
  • 73