0

剑道默认行为

单击下方时会触发该add事件。kendoGridAddCommandkendoGridToolbarTemplate

HTML:

<kendo-grid 
(add)="addHandler($event)"
>
    <ng-template kendoGridToolbarTemplate>
        <button kendoGridAddCommand>Add new</button>
    </ng-template>
    <kendo-grid-column field="id" title="ID" width="120"></kendo-grid-column>
    <kendo-grid-column field="name" title="name" width="120"></kendo-grid-column>
</kendo-grid>

TS:

protected addHandler({sender}) {
    // define all editable fields validators and default values
    const group = new FormGroup({
        'id': new FormControl(),
        'name': new FormControl()
    });

    // show the new row editor, with the `FormGroup` build above
    sender.addRow(group);
}

要求

在组件初始化或网格外部触发addrow事件。默认情况下,一行应与表单控件一起显示,而无需单击Add new按钮。

尝试了以下 SO 中提供的解决方案,但没有成功。

KendoUI Angular Grid 外部命令

任何帮助都将是可观的。谢谢

4

1 回答 1

0

您可以处理 AfterViewInit 事件,并调用 Grid addRow 方法,例如:

ngAfterViewInit() {
  this.formGroup = new FormGroup({
        'ProductID': new FormControl(),
        'ProductName': new FormControl('', Validators.required),
        'UnitPrice': new FormControl(0),
        'UnitsInStock': new FormControl('', Validators.compose([Validators.required, Validators.pattern('^[0-9]{1,3}')])),
        'Discontinued': new FormControl(false)
  });

  this.grid.addRow(this.formGroup);
}

例子

于 2018-09-17T20:37:13.833 回答