简体   繁体   English

如何将不同行的 ag-grid 中的单选按钮分组

[英]How to Group radio button which are in different rows of ag-grid

I'm creating a grid with multiple rows and inserting a radio button to each row as shown in below snapshot我正在创建一个多行网格,并在每一行中插入一个单选按钮,如下面的快照所示

在此处输入图片说明

The code snippet for the column definition of Radio button is as below,单选按钮列定义的代码片段如下,

columnDefs: [{
                headerName: '',
                field: '',
                tooltipField: '',
                suppressMenu: false,
                suppressFilter: true,
                suppressMovable: true,
                suppressResize: true,
                width: 200,
                cellRendererFramework: this.ButtonCellRenderer
               }]



 ButtonCellRenderer = (params) => {
      return (
        <div style={{margin: 'auto', width: '100%', overflow: 'hidden'}}>
          <div style={{display: 'inline-block'}}>
            <RadioButtonGroup
              name={params.data.bit_rate}
              defaultSelected={this.state.selectedRadioButton}
              debugger //eslint-disable-line
              onChange={handleSelectionChange}
              labelPosition={this.state.labelPosition}
            >
              <RadioButton label='' value='true' enabled='true' />
            </RadioButtonGroup>
          </div>
        </div>
      )
    } 

The issue I'm facing here is I'm not able to group the radio button into single RadioGroup hence I'm not achieving the mutual exclusive.我在这里面临的问题是我无法将单选按钮分组为单个 RadioGroup,因此我没有实现互斥。 Can you please suggest how to make it mutual exclusive .你能建议如何让它相互排斥吗?

You can achieve it programmatically by giving all your input/radio elements a name attribute and loop on all elements with the same name:您可以通过为所有 input/radio 元素提供name属性并在所有具有相同名称的元素上循环来以编程方式实现它:

handleClick = () => {
        const elems = document.getElementsByName("rad");
        let selected;
        for(let i = 0; i < elems.length; i++) {
            if(elems[i].checked) {
                selected = elems[i].value;
            }
        }
        console.log(selected);
    };

    render() {

        return (
            <div>
                <input type={"radio"} name={"rad"} defaultChecked={true} value={'radio1'} onClick={this.handleClick}/> radio1 <br/>
                <input type={"radio"} name={"rad"} value={'radio2'} onClick={this.handleClick}/> radio2
            </div>
        );
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM