在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 相关文章推荐
小议Function.apply() 之一------(函数的劫持与对象的复制)
Nov 30 Javascript
js实现同一页面多个运动效果的方法
Apr 10 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
js获取字符串字节数方法小结
Jun 09 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
微信小程序 wxapp内容组件 icon详细介绍
Oct 31 Javascript
js统计页面上每个标签的数量实例代码
May 29 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
Dec 05 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
Oct 17 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使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python深入学习之装饰器
2014/08/31 Python
python爬虫爬取网页表格数据
2018/03/07 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
python使用turtle库绘制时钟
2020/03/25 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
python获取栅格点和面值的实现
2020/03/10 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
Yahoo的PHP面试题
2014/05/26 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
校园歌手大赛策划书
2014/01/17 职场文书
博士生专家推荐信
2014/09/26 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
小学生毕业评语
2014/12/26 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers