#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, чтобы отразить правильный код.