在Kendo网格中为“嵌套”字段创建表单组

时间:2018-12-27 11:02:47

标签: angular kendo-ui kendo-grid formgroups

我正在尝试编辑单元格中的剑道网格元素。

我有一个剑道网格,其列定义如下:

<kendo-grid-column title="Beam ID" field="id" width="30px">
</kendo-grid-column>
<kendo-grid-column field="additional_info.name" title="Name">
</kendo-grid-column>

我按照此链接的第一个示例实现了单元内编辑形式:https://www.telerik.com/kendo-angular-ui/components/grid/editing/in-cell-editing/

在以下几行中定义表单组:

this.formBuilder.group({
 'id': dataItem.id,
 'additional_info.width': dataItem.additional_info.width
});

一切都可以与ID字段以及每个“一级”字段配合使用。我无法在网格嵌套元素(例如Additional_info.width)上进行编辑。

我不能补充说,这似乎只是“表单位置”的问题,因为在有些警报下,我了解到“单元格编辑”从单击开始,并在远离列的位置结束单击。

我尝试了一切。有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

不确定半年以来是否找到答案。这是为您解决问题的好方法 How to use formControlName and deal with nested formGroup?

但总而言之,当您使用嵌套对象创建表单组时,必须为这些对象创建额外的表单组。这意味着您最终会获得具有嵌套表单组的表单组

    this.formBuilder.group({
        id: dataItem.id,
        additional_info: this.formBuilder.group({
           width: dataItem.additional_info.width
        })
    });

在某些情况下(我相信当您使用模板自定义列时),您可能还必须使用formControl绑定正确的值。

    <kendo-grid-column [title]="Age" filter="numeric" field="additional_info.age" editor="numeric">
         <ng-template kendoGridEditTemplate let-formGroup="formGroup">
            <kendo-numerictextbox
                (valueChange)="onAgeChange($event)"
                [formControl]="formGroup.get('additional_info.age')"
            >
            </kendo-numerictextbox>
         </ng-template>
    </kendo-grid-column>