如何在React Data Grid中对列进行分组?

时间:2016-11-29 19:10:27

标签: javascript css css3 reactjs datagrid

我正在使用" React Data Grid"图书馆 http://adazzle.github.io/react-data-grid 我想对列进行分组,每个组都应该有自己的标题。

这样的事情:

| -------------- A组头------------ | -------------- B组头--------------- |

| ------ A1栏----- | ----- A2栏---- | ----- B1栏----- | ------ B2柱------ |

| ------- A1数据------- | ------ A2数据------- | ------- B1数据---- - | ------- B2数据-------- |

它可能应该是一种不太hacky的方式,并且仍然需要支持库的所有功能(如水平滚动)。

我知道可以对行进行分组,如下所示:

http://adazzle.github.io/react-data-grid/examples.html#/grouping

我想要同样的东西,但有列。无法在文档中找到它。

将不胜感激任何提示。感谢。

1 个答案:

答案 0 :(得分:0)

我认为现在回答已经为时已晚,但仍然提及以防万一有人落在这里。

这很简单,您需要使用customformatter来实现 看一看 http://adazzle.github.io/react-data-grid/scripts/example05-custom-formatters.js

遵循这些步骤

  1. 在rowGetter中为每行再创建一个密钥,此密钥将是一个对象,它将合并您的多个cols数据

  2. 创建一个简单的组件并将其提供给数据网格中的formatter

  3. 在该格式化程序组件中,您将在道具中收到新创建的密钥。

  4. 根据需要创建一个dom。

这是一个简短的例子

rowGetter(i) {
    const nameandpic= {
        name: this.state.users.name,
        imgpath: this.states.users.imgpath,
    };
    // below line will add nameandpic key in all rows, which your formatter will pick
    const row = Object.assign({}, this.state.users[i], { nameandpic});
    return row;
}

<ReactDataGrid
   columns={[
       { key: 'nameandpic', name: 'Name', formatter: NameFormatter},
       { key: 'age', name: 'Age' },
       { key: 'address', name: 'Address' },
    ]}
   rowGetter={this.rowGetter}
   rowsCount={resultCount}
 />


/*** NameFormatter.js ***/
import React from 'react';
function NameFormatter(props) {

    return (
        <div>
            <span>props.value.name</span>
            <img src={props.values.imgpath} alt="" />
        </div>
    );
}
export default NameFormatter;