在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 相关文章推荐
Javascript 判断函数类型完美解决方案
Sep 02 Javascript
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
Apr 16 Javascript
基于javascript实现图片切换效果
Apr 17 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
Angular4学习笔记之实现绑定和分包
Aug 01 Javascript
Angular事件之不同组件间传递数据的方法
Nov 15 Javascript
微信小程序发送短信验证码完整实例
Jan 07 Javascript
深入探讨JavaScript的最基本部分之执行上下文
Feb 12 Javascript
前端天气插件tpwidget使用方法详解
Jun 24 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP编程函数安全篇
2013/01/08 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
python查看zip包中文件及大小的方法
2015/07/09 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
Shell编程面试题
2016/05/29 面试题
《雨点》教学反思
2014/02/12 职场文书
探亲假请假条
2014/04/11 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
卖房授权委托书样本
2014/10/05 职场文书
农业生产宣传标语
2014/10/08 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL