在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 相关文章推荐
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
JavaScript初学者应注意的七个细节详细介绍
Dec 27 Javascript
JS获取网页图片name属性的方法
Apr 01 Javascript
JavaScript中继承用法实例分析
May 16 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
Jun 19 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
Apr 01 Javascript
解决iview多表头动态更改列元素发生的错误的方法
Nov 02 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
May 13 Javascript
给原生html中添加水印遮罩层的实现示例
Apr 02 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 str_pad 函数用法简介
2009/07/11 PHP
PHP Directory 函数的详解
2013/03/07 PHP
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
共享自己写一个框架DreamScript
2007/01/20 Javascript
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
python检查指定文件是否存在的方法
2015/07/06 Python
Python找出9个连续的空闲端口
2016/02/01 Python
python 读取DICOM头文件的实例
2018/05/07 Python
django+echart数据动态显示的例子
2019/08/12 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
让世界充满爱演讲稿
2014/05/24 职场文书
一年级小学生评语大全
2014/12/25 职场文书
全国助残日活动总结
2015/05/11 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
电频谱管理的原则是什么
2022/02/18 无线电