在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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
简单学习vue指令directive
Nov 03 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
Feb 08 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
Vue的百度地图插件尝试使用
Sep 06 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
JavaScript命名空间模式实例详解
Jun 20 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 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生成验证码
2017/02/23 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python中标准库OS的常用方法总结大全
2017/07/19 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python常见数字运算操作实例小结
2019/03/22 Python
django celery redis使用具体实践
2019/04/08 Python
Django实现发送邮件功能
2019/07/18 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
酒店执行总经理岗位职责
2013/12/15 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
运动会领导邀请函
2014/01/10 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书