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