Отключить перемещение столбцов в agGrid

#javascript #reactjs #ag-grid

#javascript #reactjs #ag-сетка

Вопрос:

Я использую таблицу AgGrid в своем приложении. Вот демонстрация. Согласно документации, я хочу остановить перемещение столбцов. Для этого я использовал:

 suppressMovable: true
  

Приведенный выше код, который я использовал здесь:

  columnDefs: [
        {
          headerName: 'Athlete',  //the generic name of header
          children: [
            {
              field: 'athlete',   //children header from generic header
              width: 150,
              suppressMovable:true
            },
            {
              field: 'age',
              lockVisible: true,
              cellClass: 'locked-visible',
              suppressMovable:true

            },
            {
              field: 'country',
              width: 150,
            },
            { field: 'year' },
            { field: 'date' },
            { field: 'sport' },
          ],
          ...
  

suppressMovable:true это работает, и столбцы athlete и age невозможно перемещать, как другие, но этот код также отключает перемещение основного столбца: Athlete . Поэтому, когда я пытаюсь переключить место Athlete и Medals столбцов, я не могу, но я не хочу этого, я хочу установить эти 2 основных столбца как подвижные.
Вопрос: Как отключить перемещение столбцов внутри Athlete и Column , но сохранить функциональность перемещения этих 2 основных столбцов?

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

1. Вы можете разветвить проект и изменить эту функцию так, чтобы она не учитывала дочерние столбцы при принятии решения о том, следует ли подавлять перемещение группы столбцов.

Ответ №1:

Простой ответ — вы не можете.

Если какой-либо дочерний элемент исправлен, то AG Grid не позволяет перемещать группу.

вы можете написать пользовательский прослушиватель событий (если это возможно), чтобы изменить suppressMovable свойство дочерних столбцов во время перетаскивания родительского столбца, а затем снова установить для них значение not movable / suppressMovable значение true. в противном случае вы можете программно переместить все столбцы в группе, используя moveColumnByIndex(from,to)

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

1. как добавить прослушиватель событий, когда я пытаюсь переместить эти 2 основных столбца?

2. не могли бы вы взглянуть, пожалуйста?

3. конечно, дай мне немного времени.

4. вы нашли решение?