reactjs 如何将材质ui数据网格列排序图标设置为始终可见?

oug3syen  于 12个月前  发布在  React
关注(0)|答案(5)|浏览(132)

这里是codesandbox.我试图有能力排序的名字和姓氏的默认Datagrid只显示排序图标时,悬停.有没有一种方法,我可以设置它总是可见?感谢帮助!

qacovj5a

qacovj5a1#

我是这样做的:

const StyledDataGrid = styled(DataGrid)(() => ({
  '& .MuiDataGrid-iconButtonContainer': {
    marginLeft: '2px',
    visibility: 'visible !important',
    width: 'auto !important',
  },
}))

字符串
我创建了一个样式化组件,它为DataGrid添加了一些自定义样式。特别是总是显示图标并占用它的宽度。不推荐使用 !important,但在这种情况下不会造成伤害。
我必须补充,这只适用于使用自定义排序图标,像这样:

<StyledDataGrid
  components={{
    ColumnSortedAscendingIcon,
    ColumnSortedDescendingIcon,
    ColumnUnsortedIcon,
  }}
/>


如果你不想使用自定义图标,我相信这是可行的,你只需要多玩CSS。

xiozqbni

xiozqbni2#

你可以像这样在DataGrid中使用sx prop:

<DataGrid
    sx={{
      '.MuiDataGrid-iconButtonContainer': {
        visibility: 'visible',
      },
      '.MuiDataGrid-sortIcon': {
        opacity: 'inherit !important',
      },
    }}

字符串
在我的例子中,我必须对iconButtonContainersortIcon进行样式设置,以确保它始终可见。

4c8rllxm

4c8rllxm3#

你可以使用.MuiDataGrid-iconButtonContainer。但是Material-UI没有为未排序列表提供默认图标。我已经分叉了你的演示并更新了它。也添加了未排序列表的图标。请检查codesandbox

tyky79it

tyky79it4#

在.scss文件中添加以下代码。(.MuiDataGrid-sortIcon是Mui Datagrid的预定义类)。希望对您有帮助!

.MuiDataGrid-sortIcon {
 opacity: inherit !important;
}

字符串

vs3odd8k

vs3odd8k5#

这就是我所做的,(使用样式组件库的样式)

const StyledDataGrid = styled(DataGrid)((theme) => ({
    "& .MuiDataGrid-sortIcon": {
        opacity: 'inherit !important',
      },
      
    "& .MuiDataGrid-iconButtonContainer": {
        visibility: 'visible',
    }
    }));

字符串
然后在代码中使用它

< StyledDataGrid rows={rows} columns={columns} />


希望能帮上忙。

相关问题