【发布时间】:2021-09-24 15:07:52
【问题描述】:
具有以下剑道网格:
this.kGrid = $element.kendoGrid({
columns: [
{ field: 'Title' },
{ field: 'Description' },
{
field: 'StartDate',
title: 'Start Date',
template: `#= kendo.toString(kendo.parseDate(DistributionDate), "${DATE_FORMAT} ${TIME_FORMAT}")#`,
}
],
filterable: true,
dataSource: {
type: 'aspnetmvc-ajax',
transport: {
read: {
url: '/Pubs/GetPubs',
dataType: "json",
type: 'POST',
data: () => ({
collectionId: this.selectedCollection,
categoryUid: this.selectedCategory
})
},
parameterMap: function (data, type) {
//i wawnt to add some logic here to convert StartDate from local time to UTC
}
},
serverFiltering: true,
schema: {
data: 'Data',
total: 'Total',
model: {
id: 'Uid',
fields: {
Title: { type: 'string' },
Description: { type: 'string' },
StartDate: { type: 'date' }
}
}
}
}
}).data('kendoGrid');
所以我有一个包含 3 列的网格,它们都是可过滤的。我的目标是将 StartDate 过滤器中的日期从本地时间转换为 UTC。这就是我添加 parameterMap 处理程序的原因。但是由于某种原因,根本没有调用 parameterMap 方法。我在这里做错了什么? 这是完整的代码 sn-p - https://dojo.telerik.com/IqadArAn/3。但问题在这里无法重现
编辑:似乎问题出在 dataSource 类型中,即“aspnetmvc-ajax”。如果要更改数据源类型,parameterMap 有效。
【问题讨论】:
-
你能提供例子吗
-
如果在参数映射中添加
console.log(data),控制台中是否会出现任何内容? -
@David,不,控制台很清楚。还尝试在 parameterMap 中设置断点,但从未触发。
-
我已经在一个示例中测试了确切的代码 sn-p 并且似乎调用了 parameterMap -dojo.telerik.com/IqadArAn
-
数据源中不同类型背后的想法是它们为您提供了预定义的 parameterMap 和 schema 函数。因此,如果设置了类型,则 parameterMap 将来自源,它不会尊重自定义 parameterMap 功能。
标签: kendo-ui kendo-grid