簡體   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