Установите начальные выбранные строки в сетке пользовательского интерфейса Angular Kendo с выбранными строками

#angular #kendo-ui #kendo-grid

#angular #kendo-ui #kendo-grid

Вопрос:

У меня есть сетка пользовательского интерфейса Kendo, в которой вы можете выбирать отдельные строки, устанавливая флажок, который добавляет их в массив; однако я хочу изначально установить выбранные строки в зависимости от того, находится ли dataItem для каждой строки в указанном массиве. вызывается selectedAccounts .

Я пробовал использовать [rowSelected]="isRowSelected" , но использование этого метода не позволило бы мне установить / снять флажок выбора.

Мне нужно иметь возможность изначально установить выбранное условие и при необходимости изменить выбор. Также стоит отметить, что у меня нет проблем, когда я начинаю с нуля selectedAccounts .

Вот stackblitz для справки.

Ответ №1:

Оказывается, у меня все было настроено правильно, но я ошибся в том, как я использовал isRowSelected в файле typescript. Изначально у меня был:

 public isRowSelected = (e: RowArgs) => this.selectedAccounts.indexOf(e.dataItem) >= 0;}
  

Приведенный выше код всегда будет возвращать false, сохраняя selectedAccounts при этом корректное отображение.

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

 public isRowSelected = (e: RowArgs) => { 
  return this.selectedAccounts.find(f => e.dataItem.accountId === f.accountId) ? true : false;
}
  

Я надеюсь, что этот ответ полезен для других. Я обновил stackblitz, чтобы отразить правильный код.