Material-UI DataGrid 未正确对数字列进行排序

use*_*349 6 sorting datagrid reactjs material-ui

我目前正在研究DataGridMaterial-UI 的组件。可以显示数据,但内置排序未按预期工作。当我尝试对 ASC/DESC 进行排序时,它是根据数字的第一位进行排序的。请看下面的图片:

降序

我在CodeSandbox中尝试了与假 API 相同的操作。它工作正常,但在我的应用程序中,排序的行为有所不同。

然后我尝试添加sortModel(遵循 Material-UI 排序文档),但它的作用仍然相同。我无法在文档中找到解决方案。

const sortModel = [{ field: "canaryDeviceId", sort: "asc" }];

<div style={{ height: "90%", width: "100%" }}>
  <DataGrid sortModel={sortModel} rows={rows} columns={columns} />
</div>
Run Code Online (Sandbox Code Playgroud)

Nea*_*arl 12

我认为DataGrid列默认使用字符串比较器,如果您想对数字列进行排序,请尝试将类型设置为'number'

{
  field: "deviceID",
  headerName: "Canary DeviceID",
  type: "number",
},
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加 sortModel (遵循 Material-UI 排序文档),但它的作用仍然相同。

sortModel仅描述了排序状态,DataGrid因此我怀疑它能否解决您的问题。

  • 谢谢你,你帮我节省了 5 个小时的堆栈溢出搜索时间,哈哈 (2认同)