繁体   English   中英

NET的Kendo Ajax网格参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM