使用 angular 2 在 devextreme DataGrid 中设置日期列的格式
Set the format of a date column in devextreme DataGrid with angular 2
我的 angular2 项目中有一个 devextreme 数据网格。但是,具有日期数据类型的列仅以以下格式显示完整的 javascript 日期:yyyy-MM-ddTHH:mm:ss。我想将此列的格式设置为更用户友好的格式,例如 dd.MM.yyyy(欧洲风格)。
但是直到现在我所有设置日期格式的尝试都没有成功。
以下是我目前在组件模板中的内容:
<dx-data-grid [dataSource]="tasks">
<dxi-column dataField="barcode" ></dxi-column>
<dxi-column dataField="receiptDate" format="shortDate">
<dxo-format type="shortDate"></dxo-format>
</dxi-column>
</dx-data-grid>
不幸的是,设置格式类型根本没有改变任何东西——我仍然得到这个未格式化的 JS 日期字符串。而且我在控制台中也没有任何异常。
一段时间后我自己找到了答案。问题是您必须将列的数据类型 属性 设置为日期 - 否则日期格式设置将被忽略。这是有效的:
<dx-data-grid [dataSource]="tasks">
<dxi-column dataField="barcode" ></dxi-column>
<dxi-column dataField="receiptDate" dataType="date" format="shortDate"></dxi-column>
</dx-data-grid>
上面提到的答案很好,如果你想使用管道(可能是为了一些额外的格式或任何东西)你可以使用 cellTemplate ,
下面是代码片段
<dx-data-grid [dataSource]="assessments" [height]="gridHeight" [hoverStateEnabled]="true"
width="100%">
<dxi-column dataField="assessDate" dataType="date" [caption]="assessDate" cellTemplate="dateCell"></dxi-column>
<div *dxTemplate="let cellData of 'dateCell'">
{{cellData.value | date: 'dd-MMM-yy'}}
</div>
</dx-data-grid>
- 一旦您修改了
dataType="date"
,devexpress 组件就足够智能,可以从您的自定义 angular 管道中捕获格式,如果您以格式 format="myFormatPipe
传递。
- 或者你可以简单地这样做你可以这样做:
<dxi-column
dataField="receiptDate"
dataType="date"
format="dd/MM/yyyy"
></dxi-column>
它是在 1 天前放映的。
以下更改对我有用
format=dd-MM-yyyy" 至 [format]="{ type: 'dd-MM-yyyy' }"
我的 angular2 项目中有一个 devextreme 数据网格。但是,具有日期数据类型的列仅以以下格式显示完整的 javascript 日期:yyyy-MM-ddTHH:mm:ss。我想将此列的格式设置为更用户友好的格式,例如 dd.MM.yyyy(欧洲风格)。
但是直到现在我所有设置日期格式的尝试都没有成功。
以下是我目前在组件模板中的内容:
<dx-data-grid [dataSource]="tasks">
<dxi-column dataField="barcode" ></dxi-column>
<dxi-column dataField="receiptDate" format="shortDate">
<dxo-format type="shortDate"></dxo-format>
</dxi-column>
</dx-data-grid>
不幸的是,设置格式类型根本没有改变任何东西——我仍然得到这个未格式化的 JS 日期字符串。而且我在控制台中也没有任何异常。
一段时间后我自己找到了答案。问题是您必须将列的数据类型 属性 设置为日期 - 否则日期格式设置将被忽略。这是有效的:
<dx-data-grid [dataSource]="tasks">
<dxi-column dataField="barcode" ></dxi-column>
<dxi-column dataField="receiptDate" dataType="date" format="shortDate"></dxi-column>
</dx-data-grid>
上面提到的答案很好,如果你想使用管道(可能是为了一些额外的格式或任何东西)你可以使用 cellTemplate , 下面是代码片段
<dx-data-grid [dataSource]="assessments" [height]="gridHeight" [hoverStateEnabled]="true"
width="100%">
<dxi-column dataField="assessDate" dataType="date" [caption]="assessDate" cellTemplate="dateCell"></dxi-column>
<div *dxTemplate="let cellData of 'dateCell'">
{{cellData.value | date: 'dd-MMM-yy'}}
</div>
</dx-data-grid>
- 一旦您修改了
dataType="date"
,devexpress 组件就足够智能,可以从您的自定义 angular 管道中捕获格式,如果您以格式format="myFormatPipe
传递。 - 或者你可以简单地这样做你可以这样做:
<dxi-column
dataField="receiptDate"
dataType="date"
format="dd/MM/yyyy"
></dxi-column>
它是在 1 天前放映的。 以下更改对我有用 format=dd-MM-yyyy" 至 [format]="{ type: 'dd-MM-yyyy' }"