[英]Kendo Ajax Grid Parameters with .Net
我有一个Kendo网格,我试图在其中发送其他数据作为布尔值,可以用来过滤控制器中的返回数据。
控制器:
public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, bool filter) {
if (filter == true) // do something.
}
读:
.Read(read => read.Action("Action", "Controller").Data("filterFunction"))
过滤功能:
function filterFunction() {
var filter = ($('#checkbox').is(":checked")) ? true : false;
console.log(filter);
return {
filter: filter
}
}
复选框事件处理程序:
$('#checkbox').change(function () {
$('#grid').data('kendoGrid').dataSource.read();
});
每次更改复选框时,它都会运行change函数,后者依次调用kendo网格以运行read函数。 kendo网格还调用filterFunction以获取其他参数。 我可以看到filterFunction确实在被调用,因为将filter的值记录到控制台。 但是,一旦返回到控制器,附加参数的值将始终为空。
我想念什么?
过滤器似乎是kendo框架中的关键词。 所以当我改变时:
function filterFunction() {
var filter = ($('#checkbox').is(":checked")) ? true : false;
console.log(filter);
return {
filter: filter
}
}
至:
function filterFunction() {
var filter = ($('#checkbox').is(":checked")) ? "true" : "false";
console.log(filter);
return {
shouldFilter: filter
}
}
还要注意,您只能将字符串作为参数传递,因此在上面的JavaScript函数中,我不得不将控制器中的参数更改为字符串,并将true / false值更改为字符串:
public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, bool filter) {
if (filter == true) // do something.
}
至:
public ActionResult Securities_Read([DataSourceRequest]DataSourceRequest request, string filter) {
if (filter == "true") // do something.
}
那解决了我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.