国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

react+ant design實現Table的增、刪、改的示例代碼

2024-05-06 15:43:46
字體:
來源:轉載
供稿:網友

本人小白一名,第一次學習react ,該資料為本人原創,采用的是react+ant design的Tabled的一個小demo,暫時只實現了增加,刪除單行,多行刪除有Bug,查看詳情,嘔心瀝血耗時一周完成,禁止抄襲,轉載請先留言,

1、main.jsx

import React from 'react';import ReactDom from 'react-dom';import ExampleTable from './ExampleTable.jsx' ReactDom.render(  <ExampleTable/>,  document.getElementById('AppRoot'));

2、ExampleTable.jsx, 注:記住引入antd.css, 否則Table組件無法正常顯示。

import React from 'react';import { Table,Button,Input,Icon,Popconfirm,Alert } from 'antd';import AddUser from './AddUser.jsx'import UserDetails from './UserDetails.jsx' class ExampleTable extends React.Component {  constructor(props) {//  構造函數    super(props);    this.state = {      dataSource:[        { key: 1, nid:1, name: 'tab', gender:'男' , age: 22, schoolname: '第一中學', description: '熱愛班級活動,尊敬老師'},        { key: 2, nid:2, name: 'shift', gender:'男' , age: 22, schoolname: '第一中學', description: '熱愛班級活動,尊敬老師'},        { key: 6, nid:6, name: 'ctrl', gender:'男' , age: 22, schoolname: '第一中學', description: '熱愛班級活動,尊敬老師'},        { key: 4, nid:4, name: 'caps lock', gender:'男' , age: 22, schoolname: '第一中學', description: '熱愛班級活動,尊敬老師'},        { key: 5, nid:5, name: 'enter', gender:'女' , age: 22, schoolname: '第一中學', description: '熱愛班級活動,尊敬老師'}      ],      index : '',      PersonCount :0,      selectedRowKeys:[],      selectedRows:[],      record : 'abc'    };    this.onDelete = this.onDelete.bind(this);//綁定this,聲明該方法需要綁定this, 直接在onClick中調用    this.appendPerson = this.appendPerson.bind(this);    this.handleSelectedDelete = this.handleSelectedDelete.bind(this);    this.columns = [      { title: '編號', dataIndex: 'nid', key: 'nid' ,width:'8%'},      { title: '姓名', dataIndex: 'name', key: 'name' ,width:'15%'},      { title: '性別', dataIndex: 'gender', key: 'gender' ,width:'10%'},      { title: '年齡', dataIndex: 'age', key: 'age',width:'15%', },//render: (text, record, index) => (Math.floor(record.age/10))*10+"多歲"},      { title: '學校', dataIndex: 'schoolname', key: 'schoolname',width:'15%' },      { title: '在校表現', dataIndex: 'description', key: 'description' ,width:'20%'},      { title: '操作', dataIndex: '', key: 'operation', width:'32%',render: (text,record,index)=>(        <span>           <Popconfirm title="刪除不可恢復,你確定要刪除嗎?" >                <a title="用戶刪除" className="mgl10"onClick={this.onDelete.bind(this,index)}>                  <Icon type="delete"/></a>           </Popconfirm>          <span className="ant-divider"/>          <UserDetails className="user_details" pass={record}/>        </span>      ) },    ];    }   appendPerson(event){//得到子元素傳過來的值    let array = [];    let count = 0;    this.state.dataSource.forEach(function (element) {      Object.keys(element).some(function (key) {        if (key === 'nid') {          count++;          array[count] = element.nid        }      })    })    let sortData =array.sort();//對遍歷得到的數組進行排序    let MaxData = sortData[(this.state.dataSource.length)-1]//取最后一位下標的值    event.key=MaxData+1;    event.nid = MaxData+1;    this.setState({       dataSource:[...this.state.dataSource,event]     })   }   onDelete(index){      console.log(index)      const dataSource = [...this.state.dataSource];      dataSource.splice(index, 1);//index為獲取的索引,后面的 1 是刪除幾行      this.setState({ dataSource });  }   handleSelectedDelete(){    if(this.state.selectedRowKeys.length>0){      console.log(...this.state.selectedRowKeys)      const dataSource = [...this.state.dataSource]      dataSource.splice(this.state.selectedRows,this.state.selectedRows.length)      this.setState({ dataSource });    }    else{     }  }   render() {    //聯動選擇框    const rowSelection = {      onChange: (selectedRowKeys, selectedRows) => {        this.setState({//將選中的id和對象存入state            selectedRowKeys:selectedRowKeys,            selectedRows:selectedRows        })        console.log(selectedRows,selectedRowKeys)      },      onSelect: (record, selected, selectedRows) => {        //console.log( record, ` selected :${selected}`,`selectedRows:${selectedRows}`);      },      onSelectAll: (selected, selectedRows, changeRows) => {        //console.log(selected, selectedRows, changeRows);      },      getCheckboxProps: record => ({        disabled: record.name === 'Disabled User',  // Column configuration not to be checked      }),    }    return (      <div className="div_body">       <div id="div_left"></div>       <div id="div-right">         <div className="table_oftop">           <Button type="primary" icon="search" style={{float:"right",marginLeft:10}}>查詢</Button>           <Input placeholder="input search text" style ={{width:300,float:"right"}}/>           <div id="add_delete">           <Button type="primary" className="selectedDelete" onClick={this.handleSelectedDelete}>刪除所選</Button>           <AddUser className="add_user_btn" callback={this.appendPerson}/>           </div>         </div>        <Table columns={this.columns}            dataSource={this.state.dataSource}            className="table"            rowSelection={rowSelection}            scroll ={{y:400}}/>       </div>      </div>    );  }}module.exports = ExampleTable;            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永寿县| 司法| 南和县| 隆化县| 宣威市| 日土县| 东乌珠穆沁旗| 历史| 尉犁县| 泗洪县| 镇原县| 郎溪县| 荣昌县| 邵阳市| 万宁市| 黔江区| 枣庄市| 绩溪县| 志丹县| 当阳市| 军事| 德保县| 巴马| 定西市| 荣昌县| 沁水县| 罗山县| 舞阳县| 山丹县| 防城港市| 泸定县| 城固县| 桂东县| 繁昌县| 孝义市| 兴文县| 松桃| 桦甸市| 临清市| 遂川县| 宜黄县|