0

我正在创建一个 Web 应用程序,在其中我用数据填充了一些 kendoGrids。当我尝试编辑这些 kendoGrids 时,会出现我的问题。以下是一些图像:

编辑前(在我有的正方形内kendoTextBox 按左上角的“编辑”后


如您所见,由于某种奇怪的原因,kendoGrid 获取最后一行 (333) 的值并将其粘贴到网格的所有行中。

现在是一些代码的时候了:
d债.component.html

<kendo-grid-column field="ContractNumber" title="Αρ. Σύμβασης" width="200">
    <ng-template *ngIf="!isInEditMode" kendoGridCellTemplate let-dataItem="dataItem">
      {{ dataItem.ContractNumber }}
    </ng-template>
    <ng-template *ngIf="isInEditMode" kendoGridCellTemplate let-dataItem="dataItem" let-formGroup="formGroup">
      <input
        name="ContractNumber"
        [(ngModel)]="dataItem.ContractNumber"
        kendoGridFocusable
        kendoTextBox/>
    </ng-template>
</kendo-grid-column>

当我按下左上角的“编辑”按钮时,isInEditMode更改值和网格会打开所有单元格进行编辑。我认为 [(ngModel)] 有问题,因为即使我在所有行中更改它们的值也会发生变化,但当我再次进入“编辑”模式时,最后一行的值将出现在突出显示的列中.

** 此问题仅发生在kendoTextBox. 例如,我没有任何kendoCombobox问题kendoNumericTextbox

任何帮助/建议将不胜感激。

4

1 回答 1

1

我找到了解决过去几天困扰我的问题的方法。多亏了这里的回复我意识到这非常简单易行。我只需要name在每个输入中都有一个唯一的。所以,这就是为什么[(ngModel)]用最后一个替换我的所有列值的原因。

最后,我设法像这样更改我的代码:

<ng-template *ngIf="isInEditMode" kendoGridCellTemplate let-dataItem="dataItem" let-rowIndex="rowIndex">
   <input
      name="Account{{ rowIndex }}"
      [(ngModel)]="dataItem.Account"
      kendoGridFocusable
      kendoTextBox/>
 </ng-template>

从技术上讲,我添加rowIndex了 each name,以便具有必要的唯一性。

于 2019-08-28T10:57:07.107 回答