首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在表格(网格)中只选择一行?

如何在表格(网格)中只选择一行?
EN

Stack Overflow用户
提问于 2021-05-05 12:58:46
回答 2查看 168关注 0票数 1

我有一个用来在(https://www.telerik.com/kendo-react-ui/components/grid/selection/).I中选择的网格,实际上有一个数据数组,例如:

代码语言:javascript
复制
[{title:'test' ,id:1 ,selected :false}
 {title:'test2' ,id:2 ,selected :false}
 {title:'test2' ,id:3 ,selected :false}]

使用此方法,当用户单击某行时,它(已选中)将变为true:

代码语言:javascript
复制
  selectionChange = (event) => {
        const data = this.state.items.map(item=>{
            if(item.Id === event.dataItem.Id){
                item.selected = !event.dataItem.selected;
            }
            return item;
        });    
    }

在这种情况下,用户可以选择任何行,但我只希望能够选择一行.我想要的是只有一行是selected.In事实,无论选择哪一行,其他的行将是selected :false

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-05 13:06:32

一种简单的方法是将所有选定的items=>设置为false,并将唯一匹配的项设置为true。

在这里,如果选择了该项,则它将更改为false,所有其他项都将更改为false;如果未选择该项,则将更改为true,所有其他项都将更改为false。

代码语言:javascript
复制
   const data = this.state.data.map(item=>{         
        if(item.ProductID === event.dataItem.ProductID){
            item.selected = !event.dataItem.selected;
            return item;
        }
       item.selected = false;
        return item;
    });

请参阅更新后的fiddle https://stackblitz.com/edit/react-7wmlfp?file=app/main.jsx

票数 2
EN

Stack Overflow用户

发布于 2021-05-05 13:03:52

代码语言:javascript
复制
selectionChange = (event) => {
    const data = this.state.items.map(item =>{
        item.selected = item.Id === event.dataItem.Id;
        
        return item;
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67395402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档