Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!doctype html>
<html>
  <head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://rawgit.com/carlosrocha/react-data-components/master/css/table-twbs.css">
  </head>
  <body>
    <div id="root" class="container"></div>
<script src="https://fb.me/react-0.13.3.js"></script>
<script src="https://rawgit.com/carlosrocha/react-data-components/master/dist/react-data-components.min.js"></script>
  </body>
</html>
 
var Table = ReactDataComponents.Table;
// Generate random data
var names = [ 'Carlos', 'Juan', 'Jesus', 'Alberto', 'John' ];
var cities = [ 'Chicago', 'Tampico', 'San Francisco', 'Mexico City', 'Boston', 'New York' ];
var addresses = [ '333 West Wacker Drive', '1931 Insurgentes Sur', '1 Lombard Street', '55 Av Hidalgo'];
var data = [];
for (var i = 0; i < 20; i++) {
  data.push({
    id: i,
    name: names[~~(Math.random() * names.length)],
    city: cities[~~(Math.random() * cities.length)],
    address: addresses[~~(Math.random() * addresses.length)]
  });
}
var columns = [
  { title: 'Name', prop: 'name'  },
  { title: 'City', prop: 'city' },
  { title: 'Address', prop: 'address' }
];
var SelectableTable = React.createClass({
  getInitialState: function() {
    return { selected: '' };
  },
 
  selectRow: function(row) {
    this.setState({ selected: row.id });
  },
  
  buildRowOptions: function(row) {
    return {
      onClick: this.selectRow.bind(this, row),
      className: this.state.selected === row.id ? 'active' : null
    };
  },
  
  render: function() {
    return (
      <Table
        buildRowOptions={this.buildRowOptions}
        {...this.props}
      />
    );
  }
});
var mount = document.getElementById('root');
React.render((
    <SelectableTable
      className="table table-bordered"
      keys="id"
      dataArray={data}
      columns={columns}
      initialData={data}
    />
  ), root);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
carlosrochapro
0viewers