簡體   English   中英

在kendo.ui.GridColumn中格式化日期和布爾值

[英]Format date & boolean in kendo.ui.GridColumn

在我們的打字稿應用程序中,我們有一個劍道網格。 在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') #" ,每行產品日期列均保持空白。

如何處理日期的空列?

我有同樣的問題。 對我來說,它可以將模式添加到數據源中,如下所示:

 schema: {
                    model: {
                        fields: {
                            ClientTimestamp: {
                                type: "date"
                            },
                            Message: {
                                type: "string"
                            }
                        }
                    }
                }

我也將日期轉換為這樣的js日期對象:

 dataBinding: function (e) {
                for (var i = 0; i < e.items.length; i++) {
                     e.items[i].date = new Date(e.items[i].date);
                }
            },

除了P. Ommer建議的數據字段類型的必需定義之外 ,布爾型列模板還應定義如下:

template: "# if (IsNew == true) { # Yes # } else { # No # } #"

換句話說, YesNo字符串應在模板的JavaScript部分之外。

http://docs.telerik.com/kendo-ui/framework/templates/overview#handle-external-templates-and-expressions

如果以標准方式序列化日期,則無需轉換日期:

https://stackoverflow.com/a/38903675/3086237

如果確實需要手動轉換(解析)日期,那么執行此操作的正確位置是Kendo UI數據源的schema.parse函數:

http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-schema.parse

空值在設計上顯示為“空”字符串。 使用模板來避免這種情況完全可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM