在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 Undefined,Null类型和NaN值区别
Oct 22 Javascript
jquery 可拖拽的窗体控件实现代码
Mar 21 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
May 18 Javascript
jquery 插件学习(三)
Aug 06 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
Bootstrap模态对话框的简单使用
Apr 29 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
详解Node.js access_token的获取、存储及更新
Jun 20 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
Ant design vue中的联动选择取消操作
Oct 31 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
将数组写入txt文件 var_export
2009/04/21 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
微信随机生成红包金额算法php版
2016/07/21 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
javascript基本语法分析说明
2008/06/15 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
python僵尸进程产生的原因
2017/07/21 Python
numpy中索引和切片详解
2017/12/15 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python实现趣味图片字符化
2019/04/30 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
护士自我评价
2014/02/01 职场文书
三八妇女节致辞
2015/07/31 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android