在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动画之圆形运动,环绕鼠标运动作小球
Jul 20 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
Apr 01 Javascript
Javascript动态创建表格及删除行列的方法
May 15 Javascript
javascript实现列表滚动的方法
Jul 30 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
javaScript基础详解
Jan 19 Javascript
JS查找字符串中出现最多的字符及个数统计
Feb 04 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
详解vue-router和vue-cli以及组件之间的传值
Jul 04 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
Jun 11 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 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
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
js 求时间差的实现代码
2016/04/26 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
详解Python如何生成词云的方法
2018/06/01 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
parser.add_argument中的action使用
2020/04/20 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
质检的岗位职责
2013/11/17 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server