溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

實現(xiàn)在antd Table中插入可編輯的單元格的方法

發(fā)布時間:2020-10-29 21:18:00 來源:億速云 閱讀:2646 作者:Leah 欄目:開發(fā)技術

今天就跟大家聊聊有關實現(xiàn)在antd Table中插入可編輯的單元格的方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

具體代碼見貼圖

實現(xiàn)在antd Table中插入可編輯的單元格的方法

補充知識:React+Ant Design實現(xiàn)可編輯單元格、添加行并利用form獲取新增數(shù)據(jù)

實現(xiàn)如下圖所示需求:

實現(xiàn)在antd Table中插入可編輯的單元格的方法

實現(xiàn)功能說明:

點擊添加按鈕,在表格中添加新的空白行(如下圖所示),在點擊提交的時候獲取空白行的數(shù)據(jù)

實現(xiàn)在antd Table中插入可編輯的單元格的方法

在構造函數(shù)內(nèi)定義:

constructor(props) {
 super(props)
 this.state = {
  dataSource:[{
   key: 0,
   name1: '',
   name2: '',
   name3: '',
  }],//應用信息化查詢方法
  count:1,//總數(shù)
 }
}

注:如果dataSource定義為空數(shù)組,則頁面初始化時表格沒有輸入框,需要點擊添加行,如下圖

實現(xiàn)在antd Table中插入可編輯的單元格的方法

在render()中定義:

const { form: { getFieldDecorator },dataSource } = this.props

在return中添加如下代碼:

<div>
</Form>
<Form.Item>
   <Table 
    columns={[
     { title: '名稱1', dataIndex: 'name1',render: (text, record, index) => 
      <Form.Item key={index}>
       {getFieldDecorator(`tableDt[${index}].name1`)(
        <Input placeholder="請輸入名稱1" /> 
       )}
      </Form.Item>
     },
     { title: '名稱2', dataIndex: 'name2',render: (text, record, index) => 
      <Form.Item key={index}>
       {getFieldDecorator(`tableDt[${index}].name2`)(
        <Input placeholder="請輸入名稱2" /> 
       )}
      </Form.Item>
     },
     { title: '名稱3', dataIndex: 'name3',render: (text, record, index) => 
      <Form.Item key={index}>
       {getFieldDecorator(`tableDt[${index}].name3`)(
        <Input placeholder="請輸入名稱3" /> 
       )}
      </Form.Item>
     },
    ]}
    dataSource={this.state.dataSource}
    pagination={false}
   />
  </Form.Item>

 </Form>
 <Row gutter={16}>
  <Col span={24}>
   <Button onClick={ this.save } type="primary">提交</Button>
   <Button onClick={ this.toback }>返回</Button>
   <span className="tips">{this.state.saveTipCont}</span>
  </Col>
 </Row>
</div>

點擊添加行按鈕的操作方法:

//添加應用信息化查詢方法行

handleRowAdd = () => {
 const { count, dataSource } = this.state;
 const newData = {
  key: count,
  name1: '',
  name2: '',
  name3: '',
 };
 this.setState({
  dataSource: [...dataSource, newData],
  count: count + 1,
 });
}

點擊提交操作的方法:

//保存
save = () => {
 //處理校驗值
 this.props.form.validateFields((err, values) => {
  // console.log(values)
  if(!err){
   // values.tableDt就是個表格數(shù)據(jù)的數(shù)組,可對獲取的值進行處理校驗處理
  }
 })
}

實現(xiàn)效果如下:

實現(xiàn)在antd Table中插入可編輯的單元格的方法

value.tableDt值如下:

實現(xiàn)在antd Table中插入可編輯的單元格的方法

看完上述內(nèi)容,你們對實現(xiàn)在antd Table中插入可編輯的單元格的方法有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI