У меня есть сетка Kendo, в которой я пытаюсь отправить дополнительные данные в виде bool, которые я могу использовать для фильтрации возвращаемых данных в моем контроллере.Параметры сетки Kendo Ajax с .Net
Контроллер:
public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, bool filter) {
if (filter == true) // do something.
}
Read:
.Read(read => read.Action("Action", "Controller").Data("filterFunction"))
фильтр Функция:
function filterFunction() {
var filter = ($('#checkbox').is(":checked")) ? true : false;
console.log(filter);
return {
filter: filter
}
}
Checkbox обработчик события:
$('#checkbox').change(function() {
$('#grid').data('kendoGrid').dataSource.read();
});
При каждом изменении флажка выполняется функция изменения, которая, в свою очередь, вызывает сетку кендо для запуска функции чтения. Сетка кендо также вызывает функцию filterFunction для получения дополнительных параметров. Я вижу, что функция filterFunction действительно вызывается, потому что регистрирует значение фильтра для консоли. Однако, как только он возвращается к контроллеру, значение дополнительного параметра всегда равно нулю.
Что мне не хватает?
Я действительно не поклонник оберток для кендо, но все, что я заметил, - это точка с запятой после вашего 'return {filter: true}'. Кроме того, вы пробовали передать строку или int, чтобы увидеть, работает ли она? Я не пытался воспроизвести то, что у вас есть. – KSib
В дополнение к тому, что сказал @KSib: я смотрю на одну из моих рабочих реализаций, и я также не делаю с запятой оператор return, ОЧЕНЬ ВАМ, вам нужно добавить его в конец функции. Кажется, это единственное очевидное отличие от того, что я обычно делаю в вашем примере. –