kendodatepicker - kendo grid type date format
La columna de la fecha de la grilla Kendo no formatea (7)
Tengo un KendoGrid
como a continuación y cuando ejecuto la aplicación, no obtengo el formato esperado para la columna de date
.
$("#empGrid").kendoGrid({
dataSource: {
data: empModel.Value,
pageSize: 10
},
columns: [
{
field: "Name",
width: 90,
title: "Name"
},
{
field: "DOJ",
width: 90,
title: "DOJ",
type: "date",
format:"{0:MM-dd-yyyy}"
}
]
});
Cuando ejecuto esto, 2013-07-02T00:00:00Z
" 2013-07-02T00:00:00Z
" en la columna DOJ. ¿Por qué no está formateando? ¿Alguna idea?
Así es como lo haces usando ASP.NET:
add .Format("{0:dd/MM/yyyy HH:mm:ss}");
@(Html.Kendo().Grid<AlphaStatic.Domain.ViewModels.AttributeHistoryViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.AttributeName);
columns.Bound(c => c.UpdatedDate).Format("{0:dd/MM/yyyy HH:mm:ss}");
})
.HtmlAttributes(new { @class = ".big-grid" })
.Resizable(x => x.Columns(true))
.Sortable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Batch(true)
.ServerOperation(false)
.Model(model =>
{
model.Id(c => c.Id);
})
.Read(read => read.Action("Read_AttributeHistory", "Attribute", new { attributeId = attributeId })))
)
Encontré esta información y la hice funcionar correctamente. Los datos que me dieron estaban en formato de cadena, así que necesitaba analizar la cadena con kendo.parseDate
antes de formatearla con kendo.toString
.
columns: [
{
field: "FirstName",
title: "FIRST NAME"
},
{
field: "LastName",
title: "LAST NAME"
},
{
field: "DateOfBirth",
title: "DATE OF BIRTH",
template: "#= kendo.toString(kendo.parseDate(DateOfBirth, ''yyyy-MM-dd''), ''MM/dd/yyyy'') #"
},
...
Referencias
Esto podría ser útil:
columns.Bound(date=> date.START_DATE).Title("Start Date").Format("{0:MM dd, yyyy}");
Intente formatear la fecha en la grilla de kendo como:
columns.Bound(x => x.LastUpdateDate).ClientTemplate("#= kendo.toString(LastUpdateDate, /"MM/dd/yyyy hh:mm tt/") #");
La opción que uso es la siguiente:
columns.Bound(p => p.OrderDate).Format("{0:d}").ClientTemplate("#=formatDate(OrderDate)#");
function formatDate(OrderDate) {
var formatedOrderDate = kendo.format("{0:d}", OrderDate);
return formatedOrderDate;
}
Por lo que sé, para formatear un valor de fecha, debe manejarlo en parameterMap,
$(''#listDiv'').kendoGrid({
dataSource: {
type: ''json'',
serverPaging: true,
pageSize: 10,
transport: {
read: {
url: ''@Url.Action("_ListMy", "Placement")'',
data: refreshGridParams,
type: ''POST''
},
parameterMap: function (options, operation) {
if (operation != "read") {
var d = new Date(options.StartDate);
options.StartDate = kendo.toString(new Date(d), "dd/MM/yyyy");
return options;
}
else { return options; }
}
},
schema: {
model: {
id: ''Id'',
fields: {
Id: { type: ''number'' },
StartDate: { type: ''date'', format: ''dd/MM/yyyy'' },
Area: { type: ''string'' },
Length: { type: ''string'' },
Display: { type: ''string'' },
Status: { type: ''string'' },
Edit: { type: ''string'' }
}
},
data: "Data",
total: "Count"
}
},
scrollable: false,
columns:
[
{
field: ''StartDate'',
title: ''Start Date'',
format: ''{0:dd/MM/yyyy}'',
width: 100
},
Si sigue el ejemplo anterior y simplemente cambia el nombre de objetos como ''StartDate'', entonces debería funcionar (ignore ''data: refreshGridParams,'')
Para obtener más detalles, consulte el enlace a continuación o simplemente busque el parámetro de cuadrícula Kendo y vea lo que otros han hecho.
http://docs.kendoui.com/api/framework/datasource#configuration-transport.parameterMap
solo es necesario poner el tipo de datos de la columna en el origen de datos
dataSource: {
data: empModel.Value,
pageSize: 10,
schema: {
model: {
fields: {
DOJ: { type: "date" }
}
}
}
}
y luego tu columna de extracto:
columns: [
{
field: "Name",
width: 90,
title: "Name"
},
{
field: "DOJ",
width: 90,
title: "DOJ",
type: "date",
format:"{0:MM-dd-yyyy}"
}
]