如何更改 kendo 网格过滤器中发送的日期格式?
how to change date format sent in filter for kendo grid?
我正在使用 kendo ui 网格,它具有针对所有日期列的自定义过滤器。我使用了自定义日期过滤器,因为我想在过滤时以 "yyyy-MM-dd" 格式发送日期。我的网格也完全在服务器端运行,用于分页和过滤器。
下面是我用于日期列的 MVC 中的 kendo 代码 -
columns.Bound(p => p.CreatedOn).Title("Created On").Width("5%").Format("{0:dd/MM/yyyy}").Filterable(filterable => filterable
.Extra(false).UI("CreatedOnFilter"));
这是我用于它的脚本 -
function CreatedOnFilter(e) {
e.kendoDatePicker({
format: "dd/MM/yyyy",
change: function () {
debugger;
var ds = $("#InvoiceGrid").data().kendoGrid.dataSource;
var nd = new Date(this.value());
var day = ("0" + nd.getDate()).slice(-2);
var mnth = ("0" + (nd.getMonth() + 1)).slice(-2);
var formattedDate = [nd.getFullYear(), mnth, day].join("-");
var curr_filters;
if(ds.filter() != undefined){
curr_filters = ds.filter().filters;
var new_filter = {
"filters": [
{
"field": "CreatedOn",
"operator": "contains",///Here is where I want operator as selected by user.
"value": formattedDate
}
]
};
curr_filters.push(new_filter);
}
else{
var new_filter = {
"filters": [
{
"field": "CreatedOn",
"operator": "contains",///Here is where I want operator as selected by user.
"value": formattedDate
}
]
};
curr_filters = new_filter;
}
ds.filter(curr_filters);
this.element.closest("form").data().kendoPopup.close();
// kendo.ui.progress($('#divInvoiceList'), false);
}
});
}
如上代码脚本所示。在运算符中,我希望它由用户选择。
任何帮助将不胜感激。
这是我在columns
中的使用方式
{
field : "ReceivedDate",
title : "Date Received",
template : "#= kendo.toString(kendo.parseDate(ReceivedDate, 'yyyy-MM-dd'), 'MM/dd/yyyy') #",
filterable : {
cell : {
showOperators : false,
operator : "eq",
template : function(args) {
args.element.kendoDatePicker({
format : "MM/dd/yyyy"
});
}
}
}
},
template
用于更改我从服务器接收到的格式。
我正在使用 kendo ui 网格,它具有针对所有日期列的自定义过滤器。我使用了自定义日期过滤器,因为我想在过滤时以 "yyyy-MM-dd" 格式发送日期。我的网格也完全在服务器端运行,用于分页和过滤器。
下面是我用于日期列的 MVC 中的 kendo 代码 -
columns.Bound(p => p.CreatedOn).Title("Created On").Width("5%").Format("{0:dd/MM/yyyy}").Filterable(filterable => filterable
.Extra(false).UI("CreatedOnFilter"));
这是我用于它的脚本 -
function CreatedOnFilter(e) {
e.kendoDatePicker({
format: "dd/MM/yyyy",
change: function () {
debugger;
var ds = $("#InvoiceGrid").data().kendoGrid.dataSource;
var nd = new Date(this.value());
var day = ("0" + nd.getDate()).slice(-2);
var mnth = ("0" + (nd.getMonth() + 1)).slice(-2);
var formattedDate = [nd.getFullYear(), mnth, day].join("-");
var curr_filters;
if(ds.filter() != undefined){
curr_filters = ds.filter().filters;
var new_filter = {
"filters": [
{
"field": "CreatedOn",
"operator": "contains",///Here is where I want operator as selected by user.
"value": formattedDate
}
]
};
curr_filters.push(new_filter);
}
else{
var new_filter = {
"filters": [
{
"field": "CreatedOn",
"operator": "contains",///Here is where I want operator as selected by user.
"value": formattedDate
}
]
};
curr_filters = new_filter;
}
ds.filter(curr_filters);
this.element.closest("form").data().kendoPopup.close();
// kendo.ui.progress($('#divInvoiceList'), false);
}
});
}
如上代码脚本所示。在运算符中,我希望它由用户选择。
任何帮助将不胜感激。
这是我在columns
{
field : "ReceivedDate",
title : "Date Received",
template : "#= kendo.toString(kendo.parseDate(ReceivedDate, 'yyyy-MM-dd'), 'MM/dd/yyyy') #",
filterable : {
cell : {
showOperators : false,
operator : "eq",
template : function(args) {
args.element.kendoDatePicker({
format : "MM/dd/yyyy"
});
}
}
}
},
template
用于更改我从服务器接收到的格式。