Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在表格(网格)中仅选择一行?_Javascript_Arrays_Reactjs_Kendo Grid - Fatal编程技术网

Javascript 如何在表格(网格)中仅选择一行?

Javascript 如何在表格(网格)中仅选择一行?,javascript,arrays,reactjs,kendo-grid,Javascript,Arrays,Reactjs,Kendo Grid,我有一个用于在()中选择的网格。我实际上有一个数据数组,例如: [{title:'test' ,id:1 ,selected :false} {title:'test2' ,id:2 ,selected :false} {title:'test2' ,id:3 ,selected :false}] 使用此方法,当用户单击某一行时,该行(已选定)变为真: selectionChange = (event) => { const data = this.state.i

我有一个用于在()中选择的网格。我实际上有一个数据数组,例如:

[{title:'test' ,id:1 ,selected :false}
 {title:'test2' ,id:2 ,selected :false}
 {title:'test2' ,id:3 ,selected :false}]
使用此方法,当用户单击某一行时,该行(已选定)变为真:

  selectionChange = (event) => {
        const data = this.state.items.map(item=>{
            if(item.Id === event.dataItem.Id){
                item.selected = !event.dataItem.selected;
            }
            return item;
        });    
    }
在这种情况下,用户可以选择任何一行,但我希望只能选择一行。。。。。
我想要的是只选择一行。事实上,无论选择哪一行,其他行都将
选择:false

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

selectionChange = (event) => {
    const data = this.state.items.map(item =>{
        item.selected = item.Id === event.dataItem.Id;
        
        return item;
    });
}

此处,如果选择了该项,则该项将更改为false,其他所有项将更改为false;如果未选择该项,则该项将更改为true,其他所有项将更改为false

   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;
    });
查看更新的小提琴
一个简单的方法是将所有选中的项设置为false,将唯一匹配项设置为true

此处,如果选择了该项,则该项将更改为false,其他所有项将更改为false;如果未选择该项,则该项将更改为true,其他所有项将更改为false

   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;
    });
查看更新的小提琴

`if(item.Id==event.dataItem.Id){item.selected=!event.dataItem.selected;}`if条件结束后,添加item.selected=false;并在if条件内添加一个重新运行false。`if(item.Id==event.dataItem.Id){item.selected=!event.dataItem.selected;}`在此if条件后,添加item.selected=false;并在if条件中添加一个rerun false。@zahrazamani不客气。谢谢你接受我的建议answer@zahrazamani不客气,谢谢你接受我的回答