Как искать по тексту и значению в раскрывающемся списке кендо.

$(document).ready(function() {
                $("#products").kendoDropDownList({
                    filter: "startswith",
                    dataTextField: "ProductName",
                    dataValueField: "ProductID",
                    dataSource: {
                        type: "odata",
                        serverFiltering: true,
                        transport: {
                            read: {
                                url: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Products",
                            }
                        }
                    }
                });
            });

Как я могу искать по значению и тексту вместе в раскрывающемся списке кендо. лучший пример вы можете найти здесь

Теперь я могу искать только по тексту. предположим, я хочу искать по идентификатору и имени сотрудника вместе. теперь я могу искать только по имени.

Является ли это возможным? или не. Дайте мне ключ, чтобы продолжить копать.

Я буду признателен за вашу помощь.


person Mehedi Hasan    schedule 08.04.2015    source источник
comment
Вы можете подготовить свой метод на стороне сервера для ожидания числа и изменить запрос в этом случае. Вы также можете установить текст-заполнитель в поле поиска, инструктируя пользователя ввести id или имя сотрудника.   -  person DontVoteMeDown    schedule 08.04.2015
comment
Спасибо @DontVoteMeDown за повтор, я исправил проблему.   -  person Mehedi Hasan    schedule 09.04.2015


Ответы (1)


Просто установите для ServerFiltering значение true и обработайте ваш запрос на стороне сервера и ответьте на результат....

ниже мой угловой контроллер:

$scope.reportingPersonOptoins = {
            filter: "startswith",
            autoBind: true,
            dataSource: {
                serverFiltering: true,
                transport: {
                    read: {
                        dataType: "json",
                        type: "POST",
                        url: baseurl + "employee/get_employee_list"
                    }
                }
            },
            dataTextField: "first_name",
            dataValueField: "employee_id",
            optionLabelTemplate: "---Select Reporting Person---",
            template: '<span>#: data.employee_id #, #: data.first_name # #: data.last_name # </span>',
            valueTemplate: '<span>#: data.employee_id #, #: data.first_name # #: data.last_name # </span>',
        };

а это мои серверные обертки

получить значение:

 header('Content-Type: application/json');
 $receive = $this->input->post();
if (isset($receive['filter'])) {
        $data = $receive['filter']['filters'][0]['value'];
    } else {
        $data = NULL;
    }

и запустите запрос соответственно

$this->db->select('hr_employee.employee_id, hr_employee.first_name, hr_employee.last_name, hr_employee_employment.branch_id')
            ->join('hr_employee_employment', 'hr_employee.employee_id = hr_employee_employment.employee_id')
            ->where(array("hr_employee.is_active" => 1, "hr_employee.is_admin" => 0));
    if ($data !== NULL) {
        $this->db->or_like("hr_employee.employee_id", $data);
        $this->db->or_like("hr_employee.first_name", $data);
        $this->db->or_like("hr_employee.last_name", $data);
    }
    $query = $this->db->get('hr_employee');

Ух ты!!! ваше здоровье!!

person Mehedi Hasan    schedule 09.04.2015