Syncfusion Angular Grid - удалить выбранную строку - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть простая сетка: enter image description here

  GridSettings() {
    this.editSettings = { allowAdding: true, allowEditing: true, allowDeleting: true, showConfirmDialog: true, showDeleteConfirmDialog: false, };
    this.searchOptions = { fields: ['SoftwareSystem', 'LicenseComponentId', 'Notes'], operator: 'contains', ignoreCase: true };
    this.pageSettings = { enableQueryString: true, pageSize: 20 };
    this.filterSettings = { type: "Menu" };
    this.filter = { type: "CheckBox" };
    this.editparams = { params: { popupHeight: '300px' } };
    this.formatoptions = { type: 'dateTime', format: 'M/d/y hh:mm a' }
    this.toolbar = ['Add', 'Edit', 'Delete', 'Update', 'Cancel'];
  }

Действие Catch выполнено:

actionComplete(args: EditEventArgs) {
    if (!isNullOrUndefined(args) && !isNullOrUndefined(args['data'])) {
      let itemToSave = args['data'] as SiteLicenceAllocation;
      if (this.licenseObj != undefined && this.licenseObj.value != null)
        itemToSave.LicenseComponentId = this.licenseObj.value.toString();

      if (args.requestType == 'add') {
        itemToSave.SiteId = this.selectedSite.SiteId;
        itemToSave.ObjectState = ObjectStateType.Created;
      }

      else if (args.requestType == 'delete') {
        itemToSave[0].ObjectState = ObjectStateType.Deleted;
        this.saveLicence(itemToSave[0]);
      }

      else if (args.requestType == 'save') {
        if (itemToSave.ObjectState == undefined)
          itemToSave.ObjectState = ObjectStateType.Updated;

        this.saveLicence(itemToSave);
      }
    }
  }

Проблема в том, что когда я выбираю строку и нажимаю наудалить, каждый раз удаляется первый ряд из сетки.Но когда я обновляю страницу, я получил хорошие данные.Меня смущает то, что я получаю Список данных на кнопку удаления.Но когда я нажимаю кнопку Добавить, Обновить, Отмена, я получаю чистую модель.Почему кнопка удаления отличается и в чем корень проблемы?

enter image description here

1 Ответ

0 голосов
/ 18 декабря 2018

Похоже, что столбец первичного ключа не указан в сетке.Операции редактирования и удаления нуждаются в поле первичного ключа для идентификации записи / строки.Пожалуйста, обратитесь к ссылке ниже.

https://ej2.syncfusion.com/angular/documentation/grid/edit/#troubleshoot-editing-works-only-for-the-first-row https://ej2.syncfusion.com/angular/documentation/grid/edit/

...