можем ли мы переключаться между представлением в виде дерева и плоским экраном?

Можно ли предоставить функцию, которая позволяет пользователю использовать как древовидный, так и плоский вид для одних и тех же данных в одной сетке?

Например,

В виде дерева

Я вижу данные как вложенные / связанные

Родительская строка

  • дочерняя строка

В плоском виде: просто отобразите дочерние строки

дочерняя строка


person precious    schedule 23.09.2020    source источник
comment
Вы ссылаетесь на основную информацию?   -  person ViqMontana    schedule 23.09.2020


Ответы (1)


Если вы хотите сгладить дерево, просто верните последний элемент в пути к дереву. Вам также необходимо сбросить все строки, чтобы применить изменение.

const displayTree = React.useRef(true);
const updateDisplayTree = (tree) => () => {
  displayTree.current = tree;
  gridApi.setRowData(rowData);
};

...

<button onClick={updateDisplayTree(true)}>Tree</button>
<button onClick={updateDisplayTree(false)}>Flat</button>
<AgGridReact
  treeData
  autoGroupColumnDef={{
    headerName: "Organisation Hierarchy",
    minWidth: 300,
  }}
  getDataPath={(data) => {
    if (displayTree.current) {
      return data.orgHierarchy;
    } else {
      return data.orgHierarchy.slice(-1);
    }
  }}
  {...}
/>

Живая демонстрация

Редактировать последнее дочернее дерево AgGrid (разветвленное)

person NearHuscarl    schedule 23.09.2020