动态改变行高

Posted

技术标签:

【中文标题】动态改变行高【英文标题】:Changing row height dynamically 【发布时间】:2021-08-24 03:21:00 【问题描述】:

我的 reactjs agggrid 上有两列:Ids 和 Description.Data 正在从 REST api 中获取搜索按钮单击。 如果 API 为一行返回多个 Id,我将使用换行符(“”)将它们显示在另一个下方的单元格中。 例如

2101 5102 9808

我需要根据返回的 Id 数量自动调整网格行高。

我已经尝试了以下标题定义中的各种属性。但是,行高似乎并没有动态变化。

[
    headerName: "Description",
    resizable: true,
    wrapText: true,
    cellStyle: 
        'white-space': 'normal'
    ,
    autoHeight: true
,

    headerName: "Ids",
    resizable: true,
    wrapText: true,
    cellStyle: 
        'white-space': 'normal'
    ,
    autoHeight: true
]

这里有什么建议吗?

谢谢。

【问题讨论】:

你能举一个你从api得到的数据的例子吗? "data":[ "Description": D1" "Ids": [ "Id": 2101 "Id": 5102 "Id": 9808 ] , “描述”:D2““Ids”:[“Id”:9808],“描述”:D3““Ids”:[“Id”:5102“Id”:9808]] 【参考方案1】:

尝试这样做

创建 customCellRendererComponent

function CustomCellRenderer(props) 
  return (
    <div>
      props.value.map((x, index) => <div key=index>x.Id</div>)
    </div>
  )
;

然后像这样在网格中注册customCellRenderer

function GridExample () 
    const [gridApi, setGridApi] = useState(null);
    const [gridColumnApi, setGridColumnApi] = useState(null);
  
    const onGridReady = (params) => 
      setGridApi(params.api);
      setGridColumnApi(params.columnApi);
    ;
  
    return (
      <div style= width: '100%', height: '100%' >
        <div
          id="myGrid"
          style=
            height: '95%',
            width: '100%',
          
          className="ag-theme-alpine"
        >
          <AgGridReact
            frameworkComponents=
              customCellRenderer: CustomCellRenderer,
            
            rowData=rowData
            rowHeight=120
            onGridReady=onGridReady
          >
            <AgGridColumn
              field="Description"
            />
            <AgGridColumn
              field="Ids"
              cellRenderer="customCellRenderer"
            />
          </AgGridReact>
        </div>
      </div>
    );
;

在此处查看完整的代码示例https://plnkr.co/edit/w7Jar0xaq7yZ4wtJ

【讨论】:

以上是关于动态改变行高的主要内容,如果未能解决你的问题,请参考以下文章

如何动态改变报表的行高列宽

UITableView 估计行高动态类型

Flexigrid / 动态调整行高

iOS 动态计算行高,宽等

UITableViewCell 内 UITableView 的动态行高

动态且单独更改 QML TableView Element 行高