当前位置: 首页 > 知识库问答 >
问题:

如何重写@devexpress/dx-react-grid-material-ui的样式?

鲁俊友
2023-03-14

是否有任何方法可以重写'@devexpress/dx-react-grid-material-ui'库中的TableSummaryRow的样式?

我所拥有的:一个组件,它呈现表(使用'@devexpress/dx-react-grid-material-ui'库),并在最后一行输出表中的总行数。

我需要做的:样式表单元格,其中TableSummaryRow呈现结果。

我已经试过这个解决办法了,但它对我不起作用。

下面是我的组件的简单代码

import React from 'react';
import { SummaryState } from '@devexpress/dx-react-grid';
import {
  TableHeaderRow,
  TableSummaryRow
} from '@devexpress/dx-react-grid-material-ui';
import { ExtendedGrid } from 'components/DxGrid/index';

const Table = ({ rows }) => (
  <ExtendedGrid rows={rows} columns={reportColumns}>
    <SummaryState totalItems={[{ columnName: 'userName', type: 'count' }]} />
    <TableHeaderRow />
    <TableSummaryRow messages={{ count: 'Number of rows' }} />
  </ExtendedGrid>
);

export default Table;

共有2个答案

陶英纵
2023-03-14

根据TableSumrow的文档,您需要使用summarystate组件。此外,由于某些原因,如果没有integratedsummary组件,即使它被标记为可选,也无法使其工作。

你可以在这里找到工作演示。

下面是一段演示代码。全队有一个总重量排。

import React from "react";
import { render } from "react-dom";
import { SummaryState, IntegratedSummary } from "@devexpress/dx-react-grid";
import {
  Grid,
  Table,
  TableHeaderRow,
  TableSummaryRow
} from "@devexpress/dx-react-grid-material-ui";

class App extends React.PureComponent {
  constructor(props) {
    super(props);

    this.state = {
      totalSummaryItems: [{ columnName: "weight", type: "sum" }],
      columns: [
        { name: "name", title: "Name" },
        { name: "weight", title: "Weight" }
      ],
      rows: [
        { name: "Sandra", weight: 123 },
        { name: "Andy", weight: 9000 },
        { name: "Einstein", weight: 56 },
        { name: "Bob", weight: 11 }
      ]
    };
  }
  render() {
    const { rows, columns } = this.state;

    return (
        <Grid rows={rows} columns={columns}>
          <SummaryState totalItems={this.state.totalSummaryItems} />
          <IntegratedSummary />
          <Table />
          <TableHeaderRow />
          <TableSummaryRow messages={{ sum: "Total weight of the group" }} />
        </Grid>
      </Paper>
    );
  }
}

render(<App />, document.getElementById("root"));
游乐池
2023-03-14

我自己想出来的,也许对某人有用。

这个官方文件页面帮了我。所以我使用了makestyles方法。

这里是工作演示。

和最后一个组件(基于安德烈·康斯坦丁诺夫的答案)代码:

import React from "react";
import { render } from "react-dom";
import Paper from "@material-ui/core/Paper";
import { makeStyles } from "@material-ui/styles";
import { SummaryState, IntegratedSummary } from "@devexpress/dx-react-grid";
import {
  Grid,
  Table,
  TableHeaderRow,
  TableSummaryRow
} from "@devexpress/dx-react-grid-material-ui";

const useStyles = makeStyles({
  root: {
    "& tfoot": {
      "& td": {
        background: "linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)",
        "&:empty": {
          background: "none"
        }
      }
    }
  }
});

const Hook = () => {
  const data = {
    totalSummaryItems: [{ columnName: "weight", type: "sum" }],
    columns: [
      { name: "name", title: "Name" },
      { name: "weight", title: "Weight" }
    ],
    rows: [
      { name: "Sandra", weight: 123 },
      { name: "Andy", weight: 9000 },
      { name: "Einstein", weight: 56 },
      { name: "Bob", weight: 11 }
    ]
  };
  const { rows, columns } = data;
  const classes = useStyles();

  return (
    <Paper className={classes.root}>
      <Grid rows={rows} columns={columns}>
        <SummaryState totalItems={data.totalSummaryItems} />
        <IntegratedSummary />
        <Table />
        <TableHeaderRow />
        <TableSummaryRow messages={{ sum: "Total weight of the group" }} />
      </Grid>
    </Paper>
  );
};

render(<Hook />, document.getElementById("root"));
 类似资料:
  • 目前我的列表都有折叠,但它们链接到一个“打开”的状态,所以如果我打开一个列表,所有其他列表都打开。什么是最好的方法来保持崩溃彼此分开,而不为每个列表提供大量的状态。 ThreadList.tsx

  • React Native Material UI (iOS and Android supported) Highly customizable material design components for React Native! Documentation Getting Started Usage Demo & Examples Components Showroom Savee.io i

  • 问题内容: 我开始研究material-ui,并在SandBox中创建一个简单的应用程序:https ://codesandbox.io/s/eager-ride-cmkrc jss的样式对我来说并不常见,但是如果您通过这两个简单的练习帮助我,那么我将理解所有内容。 首先:我希望将和的通用属性合并到新类中并进行扩展:(https://github.com/cssinjs/jss- extend#u

  • 问题内容: 如何为Material-UI的工具提示文本设置样式?悬停时的默认工具提示为黑色,没有文字换行。是否可以更改背景,颜色等?此选项是否可用? 问题答案: 关于这个问题的另一个流行的答案(由AndréJunges提出)是针对Material-UI的0.x版本。下面,我从Material UI的工具提示-自定义样式中复制了答案,该提示针对v3和v4进行了说明。 以下是如何通过主题覆盖所有工具提

  • 问题内容: 我在项目中一直使用这两个工具,有时我发现需要在Bootstrap组件和UI显示中使用Material UI组件,这与我期望的一样。有人建议我不要使用这种方法。既然两者都在使用网格并且可以灵活使用,那有什么理由吗? 问题答案: 我倾向于冗长,因此我将简洁的答案放在这里: 结论: 谁说不好用两者可能只是在表达自己的观点,实际上说不好用两者在设计时确实缺乏上下文。@ user3770494提

  • 问题内容: 如何使 Material UI* react 组件充当 react-router-dom中 的组件,而又不会失去其原始样式?就像在点击时更改路线一样。 * 像这样,但保持原始样式: 问题答案: 好的,这很容易,我不知道为什么它对我不起作用: 就是这样: