gpt4 book ai didi

reactjs - 如何在 react-admin ListView 上限制列宽

转载 作者:行者123 更新时间:2023-12-04 02:36:40 28 4
gpt4 key购买 nike

在列数很少的 ListView 中,列非常宽。我想限制至少其中一些列的宽度(最后一列除外):

enter image description here

仍在努力加快 react-admin、react 和 material-ui 的速度。我确定其中涉及一些样式。有人可以指出我正确的方向吗?谢谢。

更新:
我按照 Jozef 的建议添加了样式,但没有更改。下面是它在 Inspect 中的样子:

enter image description here

最佳答案

有两个选项可以自定义单元格的宽度。

如果要均匀设置宽度,可以更改 table-layout数据网格的

<Datagrid style={{tableLayout: 'fixed'}} rowClick="edit">
<TextField source="sourceName" />
<BooleanField source="active" />
<TextField source="organizationName" />
</Datagrid>

如果这还不够,那么我们必须创建我们的自定义 Datagrid及其所有依赖项,因此我们可以传递给 TableCell组件特定宽度。无论是百分比还是像素值。这不太好 documented所以你必须依赖于 ra-ui-materialui 中的源代码

这是例子
import {
Datagrid,
DatagridBody,
DatagridCell,
TextField,
BooleanField
} from 'react-admin';
import Checkbox from '@material-ui/core/Checkbox';
import TableCell from '@material-ui/core/TableCell';
import TableRow from '@material-ui/core/TableRow';

const CustomDatagridRow = ({ record, resource, id, onToggleItem, children, selected, basePath }) => (
<TableRow key={id}>
<TableCell style={{width="10%"}} padding="none">
{record.selectable && <Checkbox
checked={selected}
onClick={() => onToggleItem(id)}
/>}
</TableCell>
{React.Children.map(children, field => (
<TableCell style={{width: field.props.width}} key={`${id}-${field.props.source}`}>
{React.cloneElement(field, {
record,
basePath,
resource,
})}
</TableCell>
))}
</TableRow>
);

const CustomDatagridBody = props => <DatagridBody {...props} row={<CustomDatagridRow />} />;
const CustomDatagrid = props => <Datagrid {...props} body={<CustomDatagridBody />} />;

<CustomDatagrid style={{tableLayout: 'fixed'}} rowClick="edit">
<TextField width="20%" source="sourceName" />
<BooleanField width="20%" source="active" />
<TextField width="50%" source="organizationName" />
</CustomDatagrid>

关于reactjs - 如何在 react-admin ListView 上限制列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537417/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com