3

私は kendo Multiselect を使用しており、データ ソースの複数のフィールドを検索する方法を見つけたいと考えています。これが私の実際のコードです。ただし、1 つのフィールドでのみ機能します。

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

ご覧のとおり、私も AngularJS を使用しているため、名前とメールを検索しようとしています。

4

1 に答える 1

7
$("#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: "John.Doe@example.com"},
            {id: "2",name: "sss, John",email: "sss.Doe@example.com"},
            {id: "3",name: "fff, John",email: "fff.Doe@example.com"},
            {id: "4",name: "ccc, John",email: "ccc.Doe@example.com"}
            ],
        },
        value: [
            {id: "1",name: "Doe, John"},
        ]
    });

Kendo DataSourceおよびMultiSelectの API ドキュメントを参照してください。それが役に立てば幸い。

于 2016-04-13T13:19:07.890 に答える