【发布时间】:2019-04-08 10:19:00
【问题描述】:
我有一个带有单元内编辑功能的剑道网格和一对日期列。我想为用户正在编辑的单元格内的日期选择器指定最大和最小日期,但它似乎不存在任何属性。
我试着用模板来做:
<kendo-grid-column field="StartDate" title="Start Date">
<ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
<kendo-datepicker
format="{0:dd/MM/yyyy}"
[(ngModel)]="dataItem"
></kendo-datepicker>
</ng-template>
</kendo-grid-column>
但是我遇到了一堆错误。我怎样才能做到这一点?
编辑:我根据在文档中找到的一个单元内编辑示例创建了一个 stackblitz 示例:
https://stackblitz.com/edit/angular-ewvsh5
在这里,我发现我没有指定 ngModel 必须连接到的属性:
[(ngModel)]="dataItem"
应该是:
[(ngModel)]="dataItem.Date"
好的,我更改了它,但是现在,当我单击日期单元格时,它没有显示日期选择器,而是显示为常规输入。请检查组件模板中的这部分,这是问题所在:
<!-- This doesn't work -->
<kendo-grid-column field="Date" title="Date">
<ng-template
kendoGridCellTemplate
let-dataItem
let-rowIndex="rowIndex"
let-isEdited="isEdited"
*ngIf="editingDateCell"
>
<kendo-datepicker [(ngModel)]="dataItem.Date"></kendo-datepicker>
</ng-template>
<ng-template
kendoGridCellTemplate
let-dataItem
let-rowIndex="rowIndex"
let-isEdited="isEdited"
*ngIf="!editingDateCell"
>
{{ dataItem.Date | date }}
</ng-template>
</kendo-grid-column>
我做错了什么?
编辑二: 到目前为止,所有解决方案都显示单元格内的日期选择器。没关系,我知道该怎么做。问题是在用户单击编辑单元格之前,该单元格必须像一个标签,当用户单击该标签时,它必须成为一个日期选择器。如果用户更改日期并点击离开,网格必须知道数据已更新并采取相应行动。总之,我需要保留单元内编辑行为。
【问题讨论】:
-
您遇到什么错误?此外,我们将高度赞赏显示问题的示例(例如通过stackblitz.com),并将帮助我们为您提供帮助。
标签: kendo-ui kendo-grid kendo-ui-angular2