Кендо сетка дата столбец не форматирование
у меня есть KendoGrid
как показано ниже, и когда я запустить приложение, я не получаю ожидаемый формат
7 ответов:
Я нашел эту информацию и заставил ее работать правильно. Данные, предоставленные мне, были в строковом формате, поэтому мне нужно было разобрать строку с помощью
kendo.parseDate
перед форматированием с помощью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') #" }, ...
Ссылки на литературу:
просто нужно поместить тип данных столбца в источник данных
dataSource: { data: empModel.Value, pageSize: 10, schema: { model: { fields: { DOJ: { type: "date" } } } } }
а затем ваш столбец заявление:
columns: [ { field: "Name", width: 90, title: "Name" }, { field: "DOJ", width: 90, title: "DOJ", type: "date", format:"{0:MM-dd-yyyy}" } ]
попробуйте форматировать дату в сетке кендо как:
columns.Bound(x => x.LastUpdateDate).ClientTemplate("#= kendo.toString(LastUpdateDate, \"MM/dd/yyyy hh:mm tt\") #");
вот как вы это делаете с помощью 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 }))) )
опция, которую я использую, выглядит следующим образом:
columns.Bound(p => p.OrderDate).Format("{0:d}").ClientTemplate("#=formatDate(OrderDate)#"); function formatDate(OrderDate) { var formatedOrderDate = kendo.format("{0:d}", OrderDate); return formatedOrderDate; }
насколько мне известно, чтобы отформатировать значение даты, вы должны обработать его в 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 },
Если вы будете следовать выше примере, а просто переименовывает объекты, такие как 'начальная дата', то он должен работать (игнорировать данные: refreshGridParams,')
для получения дополнительной информации проверьте ссылку ниже или просто найдите kendo grid parameterMap ans посмотрите, что есть у других сделанный.
http://docs.kendoui.com/api/framework/datasource#configuration-transport.parameterMap