代码之家  ›  专栏  ›  技术社区  ›  marc_s MisterSmith

在AG网格中定义编辑日期格式

  •  0
  • marc_s MisterSmith  · 技术社区  · 7 年前

    DATETIME SaleDate -不幸的是,目前我无法将数据类型更改为 DATE (这就足够了)。

    我试图用Ag网格在一个角度应用程序中显示该列的数据。

    对于显示,我可以在我的Typescript代码中使用:

    columnDefs = [
        ....
        { headerName: 'Sale', field: 'SaleDate', width: 120, editable: true,
          cellRenderer: (data) => {
              return data.value ? (new Date(data.value)).toLocaleDateString('de-CH', this.options) : '';
        },
        ....
    ]
    

    日期时间

    [ 2018-09-27T08:43:59 ]
    

    这会让用户很困惑。。。。那么,有没有一种方法可以通过某种方式设置/定义AG网格单元中的编辑格式呢?

    1 回复  |  直到 7 年前
        1
  •  2
  •   un.spike    7 年前

    如果你需要一个解决方法(准备可视化和真实的数据)来 display edit 事情,你应该创造一个自己的 cellRenderer cellEditor 为了这个牢房。

    或者你可以创建一个 对于日历组件和 valueFormatter 用于显示日期。

    我也有同样的要求 值格式化程序

    let result: string;
    if (params.value) {
        var formats = [
            moment.ISO_8601
        ];
        let date = moment(params.value, formats, true);
    
        if (date.isValid()) {
            let dateObject: Date = date.toDate();
            result = ('0' + dateObject.getDate()).slice(-2) + '.'
                + ('0' + (dateObject.getMonth() + 1)).slice(-2) + '.'
                + dateObject.getFullYear();
            if (element.DataType == "datetime")
                result += ' ' + ('0' + dateObject.getHours()).slice(-2) + ':'
                    + ('0' + dateObject.getMinutes()).slice(-2) + ':'
                    + ('0' + dateObject.getSeconds()).slice(-2);
        }
    }
    return result;
    

    论习惯 细胞编辑器 getValue 函数-将在内部使用(用于绑定)

    getValue(): any {
        let value =  (this.selectedDate.getFullYear() + '-' 
            + ('0' + (this.selectedDate.getMonth() + 1)).slice(-2) + '-' 
            + ('0' +  this.selectedDate.getDate()).slice(-2)
            +  'T'
            + ('0' + this.selectedDate.getHours()).slice(-2) + ':'
            + ('0' + this.selectedDate.getMinutes()).slice(-2) + ':'
            + ('0' + this.selectedDate.getSeconds()).slice(-2));
        return value;
    }