首先,从服务器请求一些数据。然后我想添加一些数据。数据值中没有ID,但表单需要显示序列号。
const columns: GridColDef[] = [
{
field: 'id' ,
headerName: 'number',
filterable: false,
renderCell:(index:any) => `${index + 1}`
},
{ field: 'code' , headerName: ' code' },
{ field: 'type' , headerName: ' type' },
]
<DataGrid rows={row} columns={columns} />
但是index是Nan,当我添加一个新数据时,我如何在表中的每一行生成一个序列号?
4条答案
按热度按时间zpgglvta1#
我们可以通过使用
getRowIndex
方法来实现这一点。getRowIndex
方法将文件名作为参数,并返回该文件所属行的索引。因此技巧是向该方法传递一个唯一的字段。您的问题的解决方案看起来像这样:
在上面的例子中,我假设代码是一个唯一的字段。如果很难有一个唯一的字段,你可以生成一个代码,类型等组合的字段。
在这种情况下,您的解决方案看起来像这样:
anauzrmj2#
我可以通过从API调用
getRowIndex
来获取行索引:以你为例:
如果一个列有
sortable: true
,那么这个索引号不会改变,不管该列如何排序-它总是第一行项目为1,第二行项目为2,依此类推。同样,对于启用分页的网格,索引将基于页面进行匹配(即:如果每页有5个行项目,则不管排序如何,第一行项目在第1页上总是1,在第2页上总是6,等等)。
4zcjmb1e3#
我假设之前的一些答案在他们改变API之前是有效的。
就我个人而言,我最近才开始使用MUI DataGrid组件。
我的答案与前面的答案非常相似。
getRowIndex
在6.0.2
中不存在。我能找到的唯一API方法是
getRowIndexRelativeToVisibleRows
,它似乎可以做到这一点(尽管“相对于可见行”确实让我有点担心):i7uaboj44#
你可以使用renderCell方法,它的prop有一个id键,它对每一行都是唯一的。它看起来像这样。
你也可以使用npm包nanoid为每一行生成一个唯一的id。