在antd Table中插入可编辑的单元格实例


Posted in Javascript onOctober 28, 2020

最近遇到一个需求,要求表格中某一属性是可以手动改变的。看了antd Table 的官方组件,发现不太灵活,所以自己动手写了一下。

实现的思路大同小异,在columns中插入Input,很简单的,直接render中返回就好,只是中间遇到小插曲,改变一个input的值所有的都跟着改变,原来是都定义成了同一个变量,后来家里一个动态的后缀。具体代码见贴图

在antd Table中插入可编辑的单元格实例

补充知识:React+Ant Design实现可编辑单元格、添加行并利用form获取新增数据

实现如下图所示需求:

在antd Table中插入可编辑的单元格实例

实现功能说明:

点击添加按钮,在表格中添加新的空白行(如下图所示),在点击提交的时候获取空白行的数据

在antd Table中插入可编辑的单元格实例

在构造函数内定义:

constructor(props) {
 super(props)
 this.state = {
  dataSource:[{
   key: 0,
   name1: '',
   name2: '',
   name3: '',
  }],//应用信息化查询方法
  count:1,//总数
 }
}

注:如果dataSource定义为空数组,则页面初始化时表格没有输入框,需要点击添加行,如下图

在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就是个表格数据的数组,可对获取的值进行处理校验处理
  }
 })
}

实现效果如下:

在antd Table中插入可编辑的单元格实例

value.tableDt值如下:

在antd Table中插入可编辑的单元格实例

以上这篇在antd Table中插入可编辑的单元格实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
Google (Local) Search API的简单使用介绍
Nov 28 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
js实现无限级树形导航列表效果代码
Sep 23 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
原生js仿jquery animate动画效果
Jul 13 Javascript
如何理解jQuery中的ajaxSubmit方法
Mar 13 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
vue展示dicom文件医疗系统的实现代码
Aug 27 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
Oct 21 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 #Javascript
react antd表格中渲染一张或多张图片的实例
Oct 28 #Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 #Javascript
js实现详情页放大镜效果
Oct 28 #Javascript
用js实现放大镜效果
Oct 28 #Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 #Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 #Javascript
You might like
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
PHP查找与搜索数组元素方法总结
2015/06/12 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Nginx实现反向代理
2017/09/20 Servers
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python文件操作方法详解
2020/02/09 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python实现猜单词游戏
2020/05/22 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
python判断正负数方式
2020/06/03 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
百度JavaScript笔试题
2015/01/15 面试题
个人年终总结结尾
2015/03/06 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
2022微信温控新功能上线
2022/05/09 数码科技