Kendo Ajax .Net 网格参数
Kendo Ajax Grid Parameters with .Net
我有一个 Kendo 网格,我试图在其中发送额外的数据作为 bool,我可以用它来过滤我控制器中的 return 数据。
控制器:
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();
});
每当更改复选框时,它 运行 都会调用 kendo 网格到 运行 读取函数的更改函数。 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
}
}
另请注意,您只能将字符串作为参数传递,因此我不得不将控制器中的参数更改为字符串,并将 true/false 值更改为上面 JavaScript 函数中的字符串:
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.
}
这解决了我的问题。
我有一个 Kendo 网格,我试图在其中发送额外的数据作为 bool,我可以用它来过滤我控制器中的 return 数据。
控制器:
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();
});
每当更改复选框时,它 运行 都会调用 kendo 网格到 运行 读取函数的更改函数。 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
}
}
另请注意,您只能将字符串作为参数传递,因此我不得不将控制器中的参数更改为字符串,并将 true/false 值更改为上面 JavaScript 函数中的字符串:
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.
}
这解决了我的问题。