KendoUI 网格过滤日期格式
KendoUI grid filter date format
在我的 kendo 网格中,我想更改过滤器中的日期格式
Ex: 1/30/2015 to Jan 30, 2015
我已经更改了开始日期的日期格式
field: "StartDate",
title: "Start Date",
width: 30,
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" }
我的可过滤代码
filterable: {
extra: false,
operators: {
string: {
startswith: "Starts with",
eq: "Is equal to"
}
}
},
截图 see this
谢谢
您应该将 filterable.ui
定义为创建 DatePicker
并设置所需 format
:
的函数
{
field: "StartDate",
title: "Start Date",
width: 30,
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable : {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
},
检查以下代码段:
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
schema: {
model: {
fields: {
OrderID: { type: "number" },
Freight: { type: "number" },
ShipName: { type: "string" },
OrderDate: { type: "date" },
ShipCity: { type: "string" }
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
filterable: true,
sortable: true,
pageable: true,
columns: [
{
field:"OrderID",
filterable: false
},
{
field: "OrderDate",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable : {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
},
"ShipName"
]
});
});
html { font-size: 12px; font-family: Arial, Helvetica, sans-serif; }
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css" />
<script src="http://cdn.kendostatic.com/2014.3.1316/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.all.min.js"></script>
<div id="grid"></div>
提供的解决方案在默认情况下工作正常 'Menu filters' 但不适用于 filterable: {mode: "row"}。在这种情况下,您应该使用模板。
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
schema: {
model: {
fields: {
OrderID: {type: "number"},
Freight: {type: "number"},
ShipName: {type: "string"},
OrderDate: {type: "date"},
ShipCity: {type: "string"}
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
// filterable: true,
sortable: true,
pageable: true,
columns: [
{
field: "OrderID",
filterable: false
},
{
field: "OrderDate",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: {style: "text-align: center;"},
attributes: {style: "text-align:center !important;padding-right: 25px;"},
filterable: {
cell: {
template: function (args) {
args.element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
}
},
"ShipName"
], filterable: {mode: 'row'}
});
我从 Telerik 对 KendoUI Professional 2016.3.1118 的支持中得到了这个回复。将此添加到您的网格:
columnMenu: true,
columnMenuInit: function (e) {
var menu = e.container.find(".k-menu").data("kendoMenu");
menu.bind('activate', function(ev) {
if(ev.item.is(':last-child')) { // use 'span.k-dropdown.k-header' if the column is locked
// if an element in the submenu is focused first, the issue is not observed (menu disappearing)
ev.item.find('span.k-dropdown.k-header').first().focus();
// column field is of type "date"
if(e.field === "OrderDate") {
// accessing the DatePickers and setting the custom format
var datePickerElements = ev.item.find('[data-role="datepicker"]');
datePickerElements.each(function(idx, input) {
var datePicker = $(input).data('kendoDatePicker');
datePicker.setOptions({
format: 'MMM dd, yyyy'
});
});
}
}
});
},
在我的 kendo 网格中,我想更改过滤器中的日期格式
Ex: 1/30/2015 to Jan 30, 2015
我已经更改了开始日期的日期格式
field: "StartDate",
title: "Start Date",
width: 30,
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" }
我的可过滤代码
filterable: {
extra: false,
operators: {
string: {
startswith: "Starts with",
eq: "Is equal to"
}
}
},
截图 see this
谢谢
您应该将 filterable.ui
定义为创建 DatePicker
并设置所需 format
:
{
field: "StartDate",
title: "Start Date",
width: 30,
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable : {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
},
检查以下代码段:
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
schema: {
model: {
fields: {
OrderID: { type: "number" },
Freight: { type: "number" },
ShipName: { type: "string" },
OrderDate: { type: "date" },
ShipCity: { type: "string" }
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
filterable: true,
sortable: true,
pageable: true,
columns: [
{
field:"OrderID",
filterable: false
},
{
field: "OrderDate",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: { style: "text-align: center;" },
attributes: { style: "text-align:center !important;padding-right: 25px;" },
filterable : {
ui: function (element) {
element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
},
"ShipName"
]
});
});
html { font-size: 12px; font-family: Arial, Helvetica, sans-serif; }
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.common.min.css" />
<link rel="stylesheet" href="http://cdn.kendostatic.com/2014.3.1316/styles/kendo.default.min.css" />
<script src="http://cdn.kendostatic.com/2014.3.1316/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.3.1316/js/kendo.all.min.js"></script>
<div id="grid"></div>
提供的解决方案在默认情况下工作正常 'Menu filters' 但不适用于 filterable: {mode: "row"}。在这种情况下,您应该使用模板。
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Orders"
},
schema: {
model: {
fields: {
OrderID: {type: "number"},
Freight: {type: "number"},
ShipName: {type: "string"},
OrderDate: {type: "date"},
ShipCity: {type: "string"}
}
}
},
pageSize: 20,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
height: 550,
// filterable: true,
sortable: true,
pageable: true,
columns: [
{
field: "OrderID",
filterable: false
},
{
field: "OrderDate",
title: "Order Date",
format: "{0:MMM dd, yyyy}",
parseFormats: "{0:MM/dd/yyyy}",
headerTemplate: '<label for="check-all"><b>Start Date</b></label>',
headerAttributes: {style: "text-align: center;"},
attributes: {style: "text-align:center !important;padding-right: 25px;"},
filterable: {
cell: {
template: function (args) {
args.element.kendoDatePicker({
format: "MMM dd, yyyy"
});
}
}
}
},
"ShipName"
], filterable: {mode: 'row'}
});
我从 Telerik 对 KendoUI Professional 2016.3.1118 的支持中得到了这个回复。将此添加到您的网格:
columnMenu: true,
columnMenuInit: function (e) {
var menu = e.container.find(".k-menu").data("kendoMenu");
menu.bind('activate', function(ev) {
if(ev.item.is(':last-child')) { // use 'span.k-dropdown.k-header' if the column is locked
// if an element in the submenu is focused first, the issue is not observed (menu disappearing)
ev.item.find('span.k-dropdown.k-header').first().focus();
// column field is of type "date"
if(e.field === "OrderDate") {
// accessing the DatePickers and setting the custom format
var datePickerElements = ev.item.find('[data-role="datepicker"]');
datePickerElements.each(function(idx, input) {
var datePicker = $(input).data('kendoDatePicker');
datePicker.setOptions({
format: 'MMM dd, yyyy'
});
});
}
}
});
},