Как «Отфильтровать данные Kendo Grid на serverSide с помощью фильтра с несколькими флажками, в котором есть выбор по умолчанию» - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь создать фильтр с несколькими флажками для столбца сетки кендо, для которого серверный фильтр установлен в значение true. В фильтре multiselect-checkbox я хочу установить выбор по умолчанию для некоторого значения. Я пытаюсь достичь этих 2 сценариев, приведенных ниже:

1) Я все еще хотел бы, чтобы фильтр multiSelect показывал мне все значения для этого поля и проверял только выбор по умолчанию.

2) Кроме того, данные столбца сетки должны быть отфильтрованы до флажка, установленного в фильтре с несколькими флажками.

Я пробовал следующее, и я в основном приближаюсь к достижению 1) или 2). Но я пытаюсь заставить их обоих работать вместе.

Вот ссылка на демоверсию для 1)

С учетом вышеизложенного можно установить только флажок по умолчанию, но данные сетки при загрузке не показывают отфильтрованные данные, они показывают все.

Для 2) Я попробовал следующее

Filter: [{
           field: "ProductName", operator: "eq", value: "Chai"
}],

Этот код выше корректно фильтрует данные в сетке, но для фильтра меню список флажков также сужен, чтобы содержать только список отфильтрованных элементов, отправленных сервером. (ищу решение, чтобы сузить данные в сетке, но показать все опции в фильтре флажков).

Можно ли как-то совместить оба эти требования на фильтре с несколькими флажками и фильтрацией ServerSide?

Любая идея для решения этой проблемы высоко ценится.

Заранее спасибо!

1 Ответ

1 голос
/ 02 апреля 2019

Когда включен serverPaging Grid, источник данных должен быть предоставлен для всех фильтруемых виджетов Multi Check.Это означает, что вам придется реализовать метод на вашем сервере, который будет возвращать список элементов, которые будут отображаться в фильтре.

columns: [
{
    field: "FirstName",
    filterable: {
        multi: true,
        //when serverPaging of the Grid is enabled, dataSource should be provided for all the Filterable Multi Check widgets
        dataSource: {
            transport: {
                read: {
                    url: telerikWebServiceBase + "Employees/Unique",
                    dataType: "jsonp",
                    data: {
                        field: "FirstName"
                    }
                }
            }
        }
    },
},

Вот рабочая демо .

Вот ссылка на демонстрацию Telerik.

...