【发布时间】:2016-08-23 13:41:04
【问题描述】:
在我们的打字稿应用程序中,我们有一个剑道网格。在 Product.ts 我定义这样的列:
const cols = <kendo.ui.GridColumn[]>[
{ field: "Name", title: "Name" },
{ field: "ProductDate", template: "#= kendo.toString(ProductDate, 'dd.MM.yyyy') #" title: "Date" },
{ field: "IsNew", template: "# if (IsNew == true) { 'Yes' } else { 'No } #", title:"Is new" }];
之后,我使用以下方法将它们添加到网格中:
let grid = this.grid.kendoGrid({
dataSource: this.unitDataSource,
pageable: true,
filterable: true,
sortable: true,
columns: cols
}).data("kendoGrid");
现在我遇到了日期和布尔字段未正确显示的问题:
网格中 ProductDate 的格式:2016-08-23T15:37
IsNew 根本没有显示
除了template,我还尝试使用format: "{0:dd.MM.yyyy}" 来获得相同结果的日期。
我在浏览器控制台中没有收到任何错误消息。
我做错了什么?
编辑
dimodi 的回答解决了我的布尔字段问题。我的模板现在看起来像这样:
"# if (IsNew == true) { # Yes # } else { # No # } #"
正如 P. Ommer 在他的回答中所写,我将日期添加到架构中。日期现在以正确的格式显示在我的模板中,但如果没有指定日期,则显示“null”而不是什么。当我将模板更改为 "# if (ProductDate != null) { kendo.toString(ProductDate, 'dd.MM.yyyy') #" 时,每一行的产品日期列都为空。
如何处理日期的空列?
【问题讨论】:
标签: javascript datetime kendo-ui format boolean