2017-02-15 7 views
1

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

Моя конфигурация сетки, как показано ниже:

vm.grid.setOptions({ 
    groupable: true, 
    sortable: true, 
    resizable: true, 
    scrollable: true, 
    reorderable: true, 
    columns: gridColumns, 
    excel: { 
     allPages: true 
    }, 
    page:2, 
    pageable: { 
    pageSizes: [10, 20, 50] 
    }, 
    dataSource : { 
    page:1, 
    transport:{ 
     read: { 
     url: pageurl, 
     contentType: "application/json; charset=utf-8", 
     type: "POST", 
     dataType: "json"       
     }, 
     parameterMap: function (options) { 
     reqObject.FilterData = {}; 
     //omitted for brevity 
     var request=JSON.stringify(reqObject); 
     return request; 
     } 
    }, 
    schema: { 
     data: dataField, 
     total: totalCount   
    },   
    filter:{ 
     filters:[] 
    }, 
    autoBind: false, 
    pageSize: 10, 
    serverPaging: true, 
    serverSorting: true, 
    serverFiltering: true 
    }, 
    filterable: { 
    mode: "row" 
    }, 
    columnMenu: { 
    columns: false 
    }  

}); 

ответ

3

Если вы хотите, чтобы вызвать, когда были введены по крайней мере 3-х символов, вы можете указать MINLENGTH на уровне столбцов.

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

columns: [{ 
    field: "Name", 
    title: "Name", 
    filterable: { 
     cell: { 
      delay: 1000, 
      minLength: 3 
     } 
    } 
}