MUI:如何以编程方式删除 DataGrid 中选定的行?

2024-04-02

我正在使用 MUI 创建文件列表DataGrid。用户可以选中复选框DataGrid做出他们的选择。我希望在用户执行某些操作(例如删除所选文件)后重置该复选框。

我面临的问题是在执行删除操作后,该复选框仍然在同一位置被选中。例如,在我按下删除按钮之前:

当我按下删除按钮后:

第二行的复选框仍处于选中状态。如何以编程方式重置复选框?

const [selectedFile, setSelectedFile] = useState([]); // To keep selected file
const [files, setFiles] = useState([]); // To keep uploaded file

const deleteSelectedFile = () => {
  const filteredFileList = files.filter(
    (item) => !selectedFile.includes(item)
  );
  setFiles(filteredFileList);
};

 <DataGrid
    rows={displayFile ? displayFile : []}
    columns={columns}
    pageSize={3}
    checkboxSelection
    onSelectionModelChange={({ selectionModel }) =>
      setSelectedFile(selectionModel)
    }
  />

selectionModel不是一个数组RowData, but RowId,因此在删除处理程序中,您需要检查是否selectionModel包括一个item.id, not item:

const deleteSelectedFile = () => {
  const filteredFileList = files.filter(
    (item) => !selectedFile.includes(item.id) 
  );
  setFiles(filteredFileList);
};

因为你正在使用受控选择 https://material-ui.com/components/data-grid/selection/#controlled-selection,您需要提供selectionModel道具DataGrid too:

const [selectionModel, setSelectionModel] = React.useState([]);
<DataGrid
  {...props}
  onSelectionModelChange={setSelectionModel}
  selectionModel={selectionModel} // add this line
/>

现场演示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MUI:如何以编程方式删除 DataGrid 中选定的行? 的相关文章

随机推荐

  • 是否可以使用 Dropbox 托管一个裸 Git 存储库来共享代码?

    我意识到有类似的问题 https stackoverflow com questions 1960799 using gitdropbox together effectively 但我的问题略有不同 我想知道是否共享裸存储库通过多台计算机
  • 如何在asp.net c#中仅获取不包括时间的日期

    如何在asp net c 中仅获取不包括时间的日期 我只想将日期作为搜索输入 例如 3 11 2013 您可以使用日期时间 日期 http msdn microsoft com en us library system datetime d
  • 等待运算符没有像我预期的那样等待

    我正在上课DelayedExecutor这将延迟执行Action传递给其DelayExecute方法按一定时间timeout 参见下面的代码 使用 async 和await 语句 我还希望能够中止执行timeout如果需要的话间隔 我编写了
  • 为什么 URL up ​​时会出现“java.net.ConnectException: Connection timed out”异常?

    我得到了一个ConnectException Connection timed out我的代码中有一定频率 我试图访问的 URL 已打开 相同的代码适用于某些用户 但不适用于其他用户 似乎一旦一个用户开始收到此异常 他们就会继续收到该异常
  • “未加载模块 MyLibrary.dll 的符号”?

    我正在尝试通过制作一个提供有关 Pokemon 信息的基本应用程序来学习 Windows Phone 开发 为此 我创建了一个可移植类库 PokeLib dll 以便它与通用应用程序兼容 我已经通过同一解决方案 测试 中的项目对此进行了测试
  • 为什么使用 IKernel 而不是 IWindsorContainer?

    我在几个代码示例中看到人们使用过IKernel而不是使用IWindsorContainer 为什么是这样 这是一个例子 http docs castleproject org S kwaa14uzdj55gv55dzgf0vui Winds
  • 在 Nodejs 中解析嵌套 JSON

    我一直在尝试解析嵌套的 JSON 数据 下面是我的代码 var string key1 value key2 value1 Key3 key31 value 31 var obj JSON parse string console log
  • 统一不同 clang-format 版本的输出

    我们尝试使用 clang format 工具稍微美化我们的代码 为了在我们所做的所有机器上获得统一的结果clang format style llvm dump config 已进行了一些调整并存储到 repo 中 问题是 clang 10
  • 如何绘制每个元素在列表中的次数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试做一些我认为并不困难的事情 但我不知道如何让 python matplotlib pylab 去做 给定一个输入 我想要一个直方
  • 如何在MessageBox中显示textBox控件?

    知道如何在 MessageBox 中显示 textBox 控件 我正在开发 winforms 项目 c 先感谢您 你不能 MessageBox 是一个特殊的容器 旨在仅显示消息和按钮 相反 您可以使用您想要的任何控件创建自己的表单 并使用
  • 这段代码中的 StringBuilder 变量线程安全吗?

    考虑下面的支柱Action类中 我正在使用StringBuilder执行方法中的变量 我的问题 变量是sb线程安全与否 public DemoAction extends Action public ActionForward execut
  • Chrome 23 中的 Vibration API 隐藏在哪里?

    根据一个post http peter sh 2012 08 key bindings for extensions and media streams for the web audio api 在 Peter Beverloo 的博客上
  • 使用 Swift 和 Cocoa 创建 nswindow 的正确方法

    通常我会使用此方法通过窗口控制器打开一个新窗口 class WindowTestController interface AppDelegate NSObject
  • 替换

    以前有人问过这个问题 但我从未见过足够的答案 是否有有效的替代品
  • 如何将数据库与微服务(以及新的)同步?

    我正在开发一个采用微服务架构的网站 每个服务都拥有一个数据库 数据库存储微服务所需的数据 Post Video服务需要用户信息 因此订阅的两个服务NEW USER EVENT The NEW USER EVENT当有新用户注册时将被触发 一
  • vi 退出后如何恢复终端内容?

    像 vi 或 man 或任何其他程序这样的程序如何用程序自己的内容替换终端内容 然后在退出这些程序后它们会带回旧的终端内容 Vi 翻转到终端支持的备用屏幕缓冲区 这是通过使用转义序列来实现的 看这个链接 http invisible isl
  • 从链表中删除最小值[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要从链表中删除最小的元素值 喜欢
  • 在地图周围绘制各州省份,并用德国邮政编码着色

    我正在尝试创建一张地图 在其中按德国邮政编码进行着色 并且我想添加德国各州作为边界 for loading our data library raster library readr library readxl library sf li
  • 如何从 GAC 加载程序集?

    我正在尝试使用 Assembly Load 加载 GAC 中的程序集 例如 假设我想列出存在于的所有类型演示核心 dll 我该如何加载演示核心 dll 当我尝试这个时 Assembly a Assembly Load Presentatio
  • MUI:如何以编程方式删除 DataGrid 中选定的行?

    我正在使用 MUI 创建文件列表DataGrid 用户可以选中复选框DataGrid做出他们的选择 我希望在用户执行某些操作 例如删除所选文件 后重置该复选框 我面临的问题是在执行删除操作后 该复选框仍然在同一位置被选中 例如 在我按下删除