Sysiphus
Sysiphus

Reputation: 33

Kendo MultiSelect: Search on multiple fields

I'm working with kendo Multiselect and I would like to find a way to search in multiple fields of my data source. Here is my actual code. but it works only for one field:

`
$scope.dataList = new kendo.data.DataSource({
    data:[{id: "1",name: "Doe, John",email: "[email protected]"}],
});
$scope.customOption = {
                dataSource: $scope.dataList,
                dataTextField: "name",
                dataValueField: "id",
                filter: "contains", 
                itemTemplate: '<span>#=id#</span>#=name#<i> #=email#</i>',
}
`

As you see I'm also using AngularJS, I try to search for names and emails.

Upvotes: 3

Views: 2973

Answers (1)

user5490729
user5490729

Reputation:

$("#id").kendoMultiSelect({
        placeholder: "Select products...",
        dataTextField: "name",
        dataValueField: "id",
        autoBind: false,
        filtering: function (e) {
            if (e.filter) {
                var value = e.filter.value
                var newFilter = {
                    filters: [
                        { field: "id", operator: "contains", value: value },
                        { field: "name", operator: "contains", value: value },
                        { field: "email", operator: "contains", value: value }
                    ],
                    logic: "or"
                }
                e.sender.dataSource.filter(newFilter)
                e.preventDefault()
            }
            e.preventDefault()
        },
        dataSource: {
            data:[
            {id: "1",name: "Doe, John",email: "[email protected]"},
            {id: "2",name: "sss, John",email: "[email protected]"},
            {id: "3",name: "fff, John",email: "[email protected]"},
            {id: "4",name: "ccc, John",email: "[email protected]"}
            ],
        },
        value: [
            {id: "1",name: "Doe, John"},
        ]
    });

Refer to API Documentation of Kendo DataSource and MultiSelect. hope it helps.

Upvotes: 7

Related Questions