【问题标题】:How to add a button inside every row under a particular column in Bootstrap React Table?如何在 Bootstrap React Table 的特定列下的每一行中添加一个按钮?
【发布时间】:2017-09-28 08:41:34
【问题描述】:

我有一个 React Bootstrap 表 (http://allenfang.github.io/react-bootstrap-table/index.html),它将使用来自 API 的数据填充。我想在其中一列中添加一个按钮,然后对其执行操作。 例如,单击特定行中的按钮后,我需要从特定行中提取数据,然后进行 API 调用。 如何使用 React Bootstrap 表进行上述操作?

    return (
  <BootstrapTable
    condensed={true}
    data = { tableData } 
  //I use tableData to store information obtained from API

    headerStyle={ { 
      background: '#FFF',
    } }
    containerStyle={ { background: '#FFF' } }
    ref='table'
    >
      <TableHeaderColumn dataField='resourceId' isKey dataAlign='center' dataSort={ true }> ID </TableHeaderColumn>
      <TableHeaderColumn dataField='Name' dataAlign='center'> Name </TableHeaderColumn>
      <TableHeaderColumn dataField='support' dataAlign='center' dataSort={ true }> Support</TableHeaderColumn>
      <TableHeaderColumn dataField='status' dataAlign='center' dataSort={ true }> Status</TableHeaderColumn>


      <TableHeaderColumn 
        dataAlign='center'
        options={ 
      <button> Select </button>}
      >
      File Path
      </TableHeaderColumn>
//Insert button here and access onClick property and make relevant API calls

  </BootstrapTable>

【问题讨论】:

    标签: javascript reactjs web react-bootstrap-table


    【解决方案1】:

    您可以编写自定义数据格式化程序:

    class ActionFormatter extends React.Component {
      render() {
        return (
          <button onClick={this.props.onClick}>Click me!</button>
        );
      }
    }
    
    function actionFormatter(cell, row) {
      return (
        <ActionFormatter onClick={()=>doAction(row)} />
      );
    }
    

    在列中:

    <TableHeaderColumn dataField='action' dataFormat={ actionFormatter }>Action</TableHeaderColumn>
    

    【讨论】:

      【解决方案2】:

      按类别选择列,也可以使用查询选择器

      var column = document.querySelectorAll("tableHeaderColumn");
      

      遍历它们,将按钮添加到每个。根据需要编辑按钮的属性。

      for(var i = 0; i < column.length; i++){
       column[i].innerHTML += "<button></button>";
      }
      

      【讨论】:

        猜你喜欢
        • 2020-01-07
        • 2016-10-06
        • 2020-08-13
        • 2012-05-04
        • 2017-02-09
        • 1970-01-01
        • 1970-01-01
        • 2017-08-31
        • 2020-09-25
        相关资源
        最近更新 更多