Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. import React, { Component } from "react";
  2. import ReactDOM from "react-dom";
  3. import Table from "react-bootstrap/Table";
  4.  
  5. import "./styles.css";
  6.  
  7. const exampleData = [
  8. { Id: 1, Name: "name 1", Source: "source 1", Number: "number 1" },
  9. { Id: 2, Name: "name 2", Source: "source 2", Number: "number 2" },
  10. { Id: 3, Name: "name 3", Source: "source 3", Number: "number 3" },
  11. { Id: 4, Name: "name 4", Source: "source 4", Number: "number 4" },
  12. { Id: 5, Name: "name 5", Source: "source 5", Number: "number 5" }
  13. ];
  14.  
  15. class App extends Component {
  16. constructor() {
  17. super();
  18. this.state = {
  19. selectAll: false,
  20. items: exampleData.map(item => ({ ...item, checked: false }))
  21. };
  22. }
  23. selectAll = () => {
  24. this.setState({ selectAll: !this.state.selectAll }, () => {
  25. var collection = [];
  26. for (const item of this.state.items) {
  27. collection.push(item.Id);
  28. }
  29.  
  30. let items = [...this.state.items];
  31. items = items.map(item => {
  32. return {
  33. ...item,
  34. checked: this.state.selectAll
  35. };
  36. });
  37. this.setState({ items });
  38. });
  39. };
  40. handleTransClick = (e, id) => {
  41. e.preventDefault();
  42. alert("You clicked row #" + id);
  43. };
  44. handleCheckbox = id => {
  45. var collection2 = [];
  46. collection2.push(id);
  47. this.setState({
  48. items: this.state.items.map(item => {
  49. return {
  50. ...item,
  51. checked: item.Id === id ? !item.checked : item.checked
  52. };
  53. })
  54. });
  55. };
  56. render() {
  57. const result = this.state.items;
  58. return (
  59. <Table striped bordered className="App">
  60. <thead>
  61. <tr>
  62. <th className="col-md-2">
  63. <input
  64. onChange={this.selectAll}
  65. type="checkbox"
  66. checked={this.state.selectAll}
  67. />
  68. </th>
  69. <th>Id</th>
  70. <th>Name</th>
  71. <th>Source</th>
  72. <th>Number</th>
  73. </tr>
  74. </thead>
  75. <tbody>
  76. {result.map((item, i) => (
  77. <tr key={i}>
  78. <td className="col1">
  79. <input
  80. type="checkbox"
  81. name={item.Name}
  82. checked={item.checked ? true : ""}
  83. onChange={this.handleCheckbox.bind(this, item.Id)}
  84. />
  85. </td>
  86. <td className="col2">
  87. <a href="" onClick={e => this.handleTransClick(e, item.Id)}>
  88. {item.Id}
  89. </a>
  90. </td>
  91. <td className="col3">{item.Name}</td>
  92. <td className="col4"> {item.Source}</td>
  93. <td className="col5"> {item.Number}</td>
  94. </tr>
  95. ))}
  96. </tbody>
  97. </Table>
  98. );
  99. }
  100. }
  101.  
  102. const rootElement = document.getElementById("root");
  103. ReactDOM.render(<App />, rootElement);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement