Ag-grid: как отключить событие щелчка по ячейке при использовании enableCellTextSelection и выделении текста?

#ag-grid #ag-grid-angular

#ag-grid #ag-grid-angular

Вопрос:

Используя ag-Grid Community и Angular, я установил [enableCellTextSelection]="true" для включения выделения текста в ячейке, чтобы облегчить копирование-вставку, но я обнаружил, что cellClicked событие все еще срабатывает, когда текст выделен и кнопка мыши отпущена (т. е. мышь щелкает, перетаскивается и отпускается в той же ячейке).

Есть ли способ определить, что текст выделен в cellClicked событии, и «отменить / быстро завершить» его?

Я искал способ различать координаты мыши вниз и мыши вверх, но ничего не смог найти…

Спасибо.


Используемая версия

  • ag-grid-angular: 23.2.1
  • ag-grid-сообщество: 23.2.1

Ответ №1:

Вот небольшой обходной путь, который вы можете использовать. Используйте window.getSelection() , чтобы получить текст, выбранный пользователем. Исходя из этого, вы можете определить, был ли выделен текст или нет.

Измените cellClicked функцию обратного вызова на это:

 cellClicked(event)
    {
      if (window.getSelection().type !== 'Range')
      {
        //text has not been selected, the cell has been clicked
        console.log('cellClicked');
      }
    }
  

ДЕМОНСТРАЦИЯ

Комментарии:

1. Спасибо! Я бы хотел, чтобы это был «официальный способ ag-grid», но ваш способ, похоже, делает свое дело, если другого не существует 🙂