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不客气,谢谢你接受我的回答