我正在使用指向ASP.NET Web API OData控制器的Kendo Grid。我想知道是否可以自定义/覆盖Kendo的DataSource生成的生成的OData URL?我的问题是我的日期字段是DateTimeOffset,我正在尝试按这些字段排序,但是Kendo的模型字段仅支持字符串/ bool /数字/日期,DateTimeOffset没有。它为日期字段生成的URL是:
应该是:
http://localhost:900/api/odata/customers?%24inlinecount=allpages&%24top=10&%24filter=(CreatedDate+ge+的 DATETIMEOFFSET %272015-01-01T00%3A00 3A00%%27)
是否可以强制使用datetimeoffset?
答案 0 :(得分:0)
您可能没有使用正确的“odata”运输。试试“odata-v4”。有关详细信息here。
答案 1 :(得分:0)
对于我的ASP.NET Web API 2的OData V4控制器,我实际上需要这种URL格式:
http://localhost:XX/odata/Things?$filter=DteTmOfsField eq 2012-12-03T07:16:23Z
这个javascript对我来说非常好用:
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
type: "odata-v4",
transport: {
read: {
url: "/odata/Things/",
dataType: "json"
},
parameterMap: function (options,type) {
var paramMap = kendo.data.transports.odata.parameterMap(options, type);
if (paramMap.$filter) {
paramMap.$filter = paramMap.$filter.replace(/datetime'([-0-9T:]{19})'/gi, "$1Z");
}
paramMap.$count = true;
delete paramMap.$inlinecount; // <-- remove inlinecount parameter
delete paramMap.$format; // <-- remove format parameter
return paramMap;
}
},