首页 > 解决方案 > DevExtreme DataGrid:仅在添加中显示项目,而不是在编辑弹出窗口中

问题描述

我在 Angular 5 中使用 DevExtreme DataGrid。添加和编辑被激活并在弹出窗口中使用。有一个字段,它应该只出现在 Add-popup,而不是 Edit-Popup。在普通的 DataGrid 中,它无论如何都被禁用。

<dxi-column dataField="Staff" [visible]="false">...

如何在 Add 中启用人员字段并在 Edit-Popup 中禁用它?

谢谢你的帮助!坦率

标签: angulardevextremedevextreme-angular

解决方案


要完成此任务,请使用onEditorPreparing 或 onEditingStart 和 onInitNewRow。请参阅下面的代码,该代码说明了这两种解决方案的实际效果:

第一个解决方案:

<dx-data-grid 
    (onEditorPreparing)="onEditorPreparing($event)">

onEditorPreparing(e) {
    if(e.parentType === "dataRow" && e.dataField === "CityID") {
        e.editorOptions.disabled = (typeof e.row.data.StateID !== "number");
    }
}

第二种解决方案:

onEditingStart(e) {
    e.component.columnOption("firstName", "allowEditing", false);
},
onInitNewRow(e) {
    e.component.columnOption("firstName", "allowEditing", true);
}

推荐阅读