วิธีใช้ React Bootstrap Table ในแอปพลิเคชัน React

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

วิธีใช้ React Bootstrap Table ในแอปพลิเคชัน React

บทนำ

ในบทความนี้ เราจะมาเรียนรู้วิธีใช้ React Bootstrap Table ในแอปพลิเคชัน React ฉันจะอธิบายด้วยว่าเราสามารถใช้การเพจ การค้นหา และการเรียงลำดับในตารางนี้ได้อย่างไร

ข้อกำหนดเบื้องต้น

  • เราควรมีความรู้พื้นฐานเกี่ยวกับ React.js และ Web API
  • ควรติดตั้ง Visual Studio และ Visual Studio Code IDE ในระบบของคุณ
  • SQL Server Management Studio
  • ความรู้พื้นฐานเกี่ยวกับ Bootstrap และ HTML

ขั้นตอนการดำเนินการ



  • สร้างฐานข้อมูลและตาราง
  • สร้าง Asp.net โครงการ Web API
  • สร้างแอปตอบโต้
  • ติดตั้ง React-bootstrap-table2
  • ใช้การเรียงลำดับ
  • ดำเนินการค้นหา
  • ใช้การแบ่งหน้าแบบกำหนดเอง
  • ติดตั้ง Bootstrap
  • ติดตั้ง Axios

สร้างตารางในฐานข้อมูล

เปิด SQL Server Management Studio สร้างฐานข้อมูลชื่อ Employee และในฐานข้อมูลนี้ ให้สร้างตาราง ตั้งชื่อตารางนั้นเหมือนพนักงาน

CREATE TABLE [dbo].[Employee]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [Age] [int] NULL, [Address] [varchar](50) NULL, [City] [varchar](50) NULL, [ContactNum] [varchar](50) NULL, [Salary] [decimal](18, 0) NULL, [Department] [varchar](50) NULL, CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO

ตอนนี้เพิ่มข้อมูลสาธิตในตารางนี้

สร้างโครงการ Web API ใหม่

เปิด Visual Studio และสร้างโครงการใหม่

นี่คือชื่อภาพ

เปลี่ยนชื่อเป็น MatUITable

นี่คือชื่อภาพ

เลือกเทมเพลตเป็น Web API

นี่คือชื่อภาพ

คลิกขวาที่โฟลเดอร์ Models จาก Solution Explorer และไปที่ Add >> New Item >> data

นี่คือชื่อภาพ

คลิกที่ ADO.NET ตัวเลือกโมเดลข้อมูลเอนทิตีและคลิกเพิ่ม

นี่คือชื่อภาพ

เลือก EF Designer จากฐานข้อมูลแล้วคลิกปุ่มถัดไป

นี่คือชื่อภาพ

เพิ่มคุณสมบัติการเชื่อมต่อและเลือกชื่อฐานข้อมูลในหน้าถัดไปแล้วคลิกตกลง

นี่คือชื่อภาพ

เลือกช่องทำเครื่องหมายตาราง ตัวเลือกภายในจะถูกเลือกตามค่าเริ่มต้น ตอนนี้ให้คลิกปุ่มเสร็จสิ้น

นี่คือชื่อภาพ

ตอนนี้ โมเดลข้อมูลของเราถูกสร้างขึ้นเรียบร้อยแล้ว

คลิกขวาที่โฟลเดอร์ Controllers และเพิ่มคอนโทรลเลอร์ใหม่ ตั้งชื่อเป็นตัวควบคุมพนักงานและเพิ่มเนมสเปซต่อไปนี้ในตัวควบคุมพนักงาน

ใช้ MatUITable.Models;

ตอนนี้เพิ่มวิธีการดึงข้อมูลจากฐานข้อมูล

[HttpGet] [Route('employee')] public object Getrecord() { var emp = DB.Employees.ToList(); return emp; }

กรอกรหัสควบคุมพนักงาน

using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using MatUITable.Models; namespace MatUITable.Controllers { [RoutePrefix('Api/Emp')] public class EmployeeController : ApiController { EmployeeEntities DB = new EmployeeEntities(); [HttpGet] [Route('employee')] public object Getrecord() { var emp = DB.Employees.ToList(); return emp; } } }

ตอนนี้ มาเปิดใช้งาน CORS ไปที่เครื่องมือ เปิด NuGet Package Manager ค้นหา CORS และติดตั้งแพ็คเกจ Microsoft.Asp.Net.WebApi.Cors เปิด Webapiconfig.cs และเพิ่มบรรทัดต่อไปนี้

EnableCorsAttribute cors = new EnableCorsAttribute('*', '*', '*'); config.EnableCors(cors);

สร้างโครงการ ReactJS

ขั้นแรก มาสร้างแอปพลิเคชัน React ด้วยคำสั่งต่อไปนี้

npx create-react-app matform

ติดตั้ง bootstrap โดยใช้คำสั่งต่อไปนี้

npm install --save bootstrap

ตอนนี้ เปิดไฟล์ index.js และเพิ่มการอ้างอิง Bootstrap

import 'bootstrap/dist/css/bootstrap.min.css';

ตอนนี้ ติดตั้งไลบรารี Axios โดยใช้คำสั่งต่อไปนี้ เรียนรู้เพิ่มเติมเกี่ยวกับ Axios

npm install --save axios

ติดตั้ง react-bootstrap-table2

ติดตั้ง react bootstrap table โดยใช้คำสั่งต่อไปนี้

npm install react-bootstrap-table-next --save

ตอนนี้ คลิกขวาที่โฟลเดอร์ src และเพิ่มส่วนประกอบใหม่ชื่อ 'Bootstraptab.js'

ตอนนี้เปิดองค์ประกอบ Bootstraptab.js และนำเข้าข้อมูลอ้างอิงที่จำเป็น เพิ่มรหัสต่อไปนี้ในส่วนประกอบนี้

import React, { Component } from 'react' import BootstrapTable from 'react-bootstrap-table-next'; import axios from 'axios'; export class Bootstraptab extends Component { state = { employee: [], columns: [{ dataField: 'Id', text: 'Id' }, { dataField: 'Name', text: 'Name', sort:true }, { dataField: 'Age', text: 'Age', sort: true }, { dataField: 'Address', text: 'Address', sort: true }, { dataField: 'City', text: 'City', sort: true }, { dataField: 'ContactNum', text: 'ContactNum', sort: true }, { dataField: 'Salary', text: 'Salary', sort: true }, { dataField: 'Department', text: 'Department', sort: true }] } componentDidMount() { axios.get('http://localhost:51760/Api/Emp/employee').then(response => { console.log(response.data); this.setState({ employee: response.data }); }); } render() { return ( React Bootstrap Table with Searching and Custom Pagination ) } } export default Bootstraptab

เรียกใช้โครงการโดยใช้ 'npm start' และตรวจสอบผลลัพธ์

นี่คือชื่อภาพ

นี่คือชื่อภาพ

คลิกที่ปุ่มเพื่อตรวจสอบการเรียงลำดับในตาราง

ดำเนินการค้นหา

ติดตั้งไลบรารีต่อไปนี้เพื่อเพิ่มการค้นหาในตารางนี้

npm install react-bootstrap-table2-filter --save

ตอนนี้เพิ่มรหัสต่อไปนี้ในส่วนประกอบนี้

import React, { Component } from 'react' import BootstrapTable from 'react-bootstrap-table-next'; import axios from 'axios'; import filterFactory, { textFilter } from 'react-bootstrap-table2-filter'; export class Bootstraptab extends Component { state = { employee: [], columns: [{ dataField: 'Id', text: 'Id' }, { dataField: 'Name', text: 'Name', filter: textFilter() }, { dataField: 'Age', text: 'Age', sort: true }, { dataField: 'Address', text: 'Address', sort: true }, { dataField: 'City', text: 'City', sort: true }, { dataField: 'ContactNum', text: 'ContactNum', sort: true }, { dataField: 'Salary', text: 'Salary', sort: true }, { dataField: 'Department', text: 'Department', sort: true }] } componentDidMount() { axios.get('http://localhost:51760/Api/Emp/employee').then(response => { console.log(response.data); this.setState({ employee: response.data }); }); } render() { return ( React Bootstrap Table with Searching and Custom Pagination ) } } export default Bootstraptab

เรียกใช้โครงการโดยใช้ 'npm start' และตรวจสอบผลลัพธ์

นี่คือชื่อภาพ

นี่คือชื่อภาพ

ใช้การแบ่งหน้า

ติดตั้งไลบรารีต่อไปนี้เพื่อเพิ่มการแบ่งหน้าในตารางนี้

npm install react-bootstrap-table2-paginator --save

ตอนนี้เพิ่มรหัสต่อไปนี้ในส่วนประกอบนี้

import React, { Component } from 'react' import BootstrapTable from 'react-bootstrap-table-next'; import axios from 'axios'; import paginationFactory from 'react-bootstrap-table2-paginator'; export class Bootstraptab extends Component { state = { employee: [], columns: [{ dataField: 'Id', text: 'Id' }, { dataField: 'Name', text: 'Name', }, { dataField: 'Age', text: 'Age', sort: true }, { dataField: 'Address', text: 'Address', sort: true }, { dataField: 'City', text: 'City', sort: true }, { dataField: 'ContactNum', text: 'ContactNum', sort: true }, { dataField: 'Salary', text: 'Salary', sort: true }, { dataField: 'Department', text: 'Department', sort: true }] } componentDidMount() { axios.get('http://localhost:51760/Api/Emp/employee').then(response => { console.log(response.data); this.setState({ employee: response.data }); }); } render() { return ( React Bootstrap Table with Searching and Custom Pagination ) } } export default Bootstraptab

เรียกใช้โครงการโดยใช้ 'npm start' และตรวจสอบผลลัพธ์

นี่คือชื่อภาพ

โดยค่าเริ่มต้นจะแสดง 10 รายการต่อหน้า ให้สร้างฟังก์ชันเพื่อเพิ่มขนาดหน้าแบบกำหนดเอง เพิ่มรหัสต่อไปนี้ในส่วนประกอบนี้และตรวจสอบ

import React, { Component } from 'react' import BootstrapTable from 'react-bootstrap-table-next'; import axios from 'axios'; import paginationFactory from 'react-bootstrap-table2-paginator'; export class Bootstraptab extends Component { state = { employee: [], columns: [{ dataField: 'Id', text: 'Id' }, { dataField: 'Name', text: 'Name', }, { dataField: 'Age', text: 'Age', sort: true }, { dataField: 'Address', text: 'Address', sort: true }, { dataField: 'City', text: 'City', sort: true }, { dataField: 'ContactNum', text: 'ContactNum', sort: true }, { dataField: 'Salary', text: 'Salary', sort: true }, { dataField: 'Department', text: 'Department', sort: true }] } componentDidMount() { axios.get('http://localhost:51760/Api/Emp/employee').then(response => { console.log(response.data); this.setState({ employee: response.data }); }); } render() { const options = { page: 2, sizePerPageList: [ { text: '5', value: 5 }, { text: '10', value: 10 }, { text: 'All', value: this.state.employee.length } ], sizePerPage: 5, pageStartIndex: 0, paginationSize: 3, prePage: 'Prev', nextPage: 'Next', firstPage: 'First', lastPage: 'Last', }; return ( React Bootstrap Table with Searching and Custom Pagination ) } } export default Bootstraptab

เรียกใช้โครงการโดยใช้ 'npm start' และตรวจสอบผลลัพธ์

นี่คือชื่อภาพ

ตอนนี้สร้างส่วนประกอบใหม่ Bootstraptab1.js และเพิ่มรหัสต่อไปนี้ในส่วนประกอบนี้

import React, { Component } from 'react' import BootstrapTable from 'react-bootstrap-table-next'; import axios from 'axios'; import filterFactory, { textFilter } from 'react-bootstrap-table2-filter'; import paginationFactory from 'react-bootstrap-table2-paginator'; export class Bootstraptab1 extends Component { state = { products: [], columns: [{ dataField: 'Id', text: 'Id' }, { dataField: 'Name', text: 'Name', filter: textFilter() }, { dataField: 'Age', text: 'Age', sort: true }, { dataField: 'Address', text: 'Address', sort: true }, { dataField: 'City', text: 'City', sort: true }, { dataField: 'ContactNum', text: 'ContactNum', sort: true }, { dataField: 'Salary', text: 'Salary', sort: true }, { dataField: 'Department', text: 'Department', sort: true }] } componentDidMount() { axios.get('http://localhost:51760/Api/Emp/employee').then(response => { console.log(response.data); this.setState({ products: response.data }); }); } render() { const options = { page: 2, sizePerPageList: [ { text: '5', value: 5 }, { text: '10', value: 10 }, { text: 'All', value: this.state.products.length } ], sizePerPage: 5, pageStartIndex: 0, paginationSize: 3, prePage: 'Prev', nextPage: 'Next', firstPage: 'First', lastPage: 'Last', paginationPosition: 'top' }; return ( React Bootstrap Table with Searching and Custom Pagination ) } } export default Bootstraptab1

ตอนนี้เปิดไฟล์ app.js และเพิ่มรหัสต่อไปนี้

import React from 'react'; import logo from './logo.svg'; import './App.css'; import Bootstraptab1 from './Bootstraptab1'; function App() { return ( ); } export default App;

เรียกใช้โครงการโดยใช้ 'npm start' และตรวจสอบผลลัพธ์

การโอนแอปเงินสดล้มเหลว เพิ่มเงินสด

นี่คือชื่อภาพ

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีที่เราเพิ่ม React Bootstrap Table และแสดงข้อมูลในตารางนั้นโดยใช้ Web API ในแอปพลิเคชัน ReactJS นอกจากนี้เรายัง Llarned วิธีการใช้การเรียงลำดับการค้นหาและการแบ่งหน้าในตาราง

ขอบคุณสำหรับการอ่าน!

#ตอบโต้ #bootstrap #webapi

ดูสิ่งนี้ด้วย: