Как «Отфильтровать данные сетки кендо на стороне сервера с помощью фильтра с несколькими флажками, в котором сделаны некоторые выборки по умолчанию»

#javascript #jquery #kendo-ui #kendo-grid #kendo-multiselect

#javascript #jquery #kendo-ui #kendo-grid #kendo-multiselect

Вопрос:

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

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

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

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

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

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

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

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

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

Есть ли способ, которым я мог бы совместить оба этих требования в фильтре с несколькими флажками с фильтрацией на стороне сервера?

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

Заранее благодарю вас!

Комментарии:

1. вы уже пробовали filterMenuInit ?

2. Да, вот что я пробовал, это не фильтрует данные в сетке.

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

Ответ №1:

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

 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.