Я встраиваю таблицу пользовательского интерфейса Kendo (виджет jQuery) в компонент Angular. После сохранения я перезагружаю книгу через fromJSON(...). Если последнее сохраненное значение в A1 является числовым, просто фокусировка A1 и размытие (без изменений) запускает событие изменения сразу после перезагрузки. Этого не происходит с текстовыми значениями и, как правило, не с другими ячейками.
Введите 100 в A1 → зафиксируйте → измените срабатывает (ожидается).
Сохранить → вызов из JSON(workbook) для перезагрузки.
После перезагрузка, A1 выбирается автоматически и выравнивается по левому краю.
щелкните в другом месте (размытие) без изменения → изменить событие срабатывает (неожиданно).
После перезагрузки листа значение в ячейке A1 автоматически выравнивается по левому краю и фокусируется. Когда фокус потерян, событие изменения запускается, даже если никаких изменений не было. обратитесь к изображению.
Ожидается
Нет изменений при размытии, если значение ячейки фактически не изменилось.
Любые рекомендации от Telerik по выравниванию активной ячейки электронной таблицы жизненный цикл с семантикой уровня приложения («экономить только на реальных изменениях»)?
Я встраиваю [b]таблицу пользовательского интерфейса Kendo (виджет jQuery)[/b] в компонент [b]Angular[/b]. После сохранения я перезагружаю книгу через fromJSON(...). Если [b]последнее сохраненное значение в A1 является числовым[/b], просто [b]фокусировка A1 и размытие (без изменений)[/b] запускает событие изменения сразу после перезагрузки. Этого не происходит с текстовыми значениями и, как правило, не с другими ячейками. [list] [*]Введите 100 в [b]A1[/b] → зафиксируйте → измените срабатывает (ожидается).
[*]Сохранить → вызов из JSON(workbook) для перезагрузки.
[*]После перезагрузка, A1 [b]выбирается автоматически[/b] и [b]выравнивается по левому краю[/b].
[*]щелкните в другом месте (размытие) [b]без изменения[/b] → изменить событие срабатывает (неожиданно). [code] private loadKendoSpreadsheet(workbook?: Workbook): void { const kendoWorkbook = { ...convertWorkbookToKendo(workbook ?? {}), defaultCellStyle: { fontFamily: 'Roboto', fontSize: 12 }, columnWidth: 64, rowHeight: 20 };
try { this.ignoreSpreadsheetChangedEvent = true;
const $worksheet = kendo.jQuery(this.spreadsheetEl.nativeElement); let kendoSpreadsheet = $worksheet.data("kendoSpreadsheet");
if (kendoSpreadsheet) { // Reload workbook kendoSpreadsheet.fromJSON(kendoWorkbook);
@HostListener('document:spreadsheetChanged') public onSpreadsheetChanged() { if (this.ignoreSpreadsheetChangedEvent) return; this.worksheetForm.markAsDirty(); } /** * Reset to the saved version of the worksheet */ private resetChanges() { this.worksheetForm.reset(this.worksheet.description); this.canSaveUnchanged = false; this.loadKendoSpreadsheet(this.worksheet.workbook); } [/code] После перезагрузки листа значение в ячейке A1 автоматически выравнивается по левому краю и фокусируется. Когда фокус потерян, событие изменения запускается, даже если никаких изменений не было. обратитесь к изображению. [img]https://i.sstatic.net/TM95hlFJ.png[/img]
[b]Ожидается[/b] [list] Нет изменений при размытии, если значение ячейки фактически не изменилось. [/list] Любые рекомендации от Telerik по выравниванию [b]активной ячейки электронной таблицы жизненный цикл[/b] с семантикой уровня приложения («экономить только на реальных изменениях»)?