如何获取React MUI DataGrid中与显示完全一致的已过滤排序行?
解决MUI DataGrid获取过滤+排序后可见行的问题
要获取和DataGrid可见内容完全一致(经过过滤+排序)的行数据,不能仅使用getSortedRows()(该方法仅处理排序,不包含过滤逻辑),可以通过以下两种API实现:
核心API选择
getVisibleRowModels():返回所有经过过滤、排序后的行数据(包含所有分页的符合条件数据,不限于当前页)getRenderedRows():返回当前页面中实际渲染的行数据(仅当前分页的可见行,和页面显示完全匹配)
修改后的代码示例
const apiRef = useGridApiRef(); function arrowsEventListener(event) { // 避免apiRef未初始化的情况 if (!apiRef.current) return; if (event.key === "ArrowUp" || event.key === "ArrowDown") { // 获取当前页面可见的、经过过滤+排序的行数据 const visibleRows = apiRef.current.getRenderedRows(); // 若需要所有符合过滤排序条件的行(跨分页),则用: // const filteredSortedAllRows = apiRef.current.getVisibleRowModels(); // 后续可基于visibleRows处理选中行上下移动逻辑 } }
内容的提问来源于stack exchange,提问作者Bartosz Bryczkowski
相关产品推荐
相关产品推荐

