问题的原因在于在行内编辑时,日期选择器没有足够的时间来接收输入。要解决这个问题,可以添加一些代码以确保日期选择器仍可用于编辑。以下是一个基本示例:
import { Component } from '@angular/core';
import { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';
import { process, State } from '@progress/kendo-data-query';
@Component({
selector: 'my-app',
template: `
`
})
export class AppComponent {
public gridData: GridDataResult;
public onEdit({ sender, rowIndex }: any): void {
setTimeout(() => {
const inputs = document.querySelectorAll('.k-grid-edit-row input[type=date]');
inputs.forEach(input => {
input.addEventListener('click', e => {
e.preventDefault();
e.stopPropagation();
});
});
});
}
// grid data methods ...
}
在onEdit()方法中,我们使用setTimeout()方法来确保页面有足够时间加载,然后选择所有日期输入框并绑定一个“click”事件以防止选择器关闭。此解决方案也可适用于其他类型的弹出窗口,例如选择器和下拉框。