在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 相关文章推荐
javascritp添加url参数将参数加入到url中
Sep 25 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
AngularJS数据源的多种获取方式汇总
Feb 02 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
微信小程序 页面跳转及数据传递详解
Mar 14 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 Javascript
Vue使用axios引起的后台session不同操作
Aug 14 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
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
2015/02/02 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python计算IV值的示例讲解
2020/02/28 Python
python实现猜数游戏
2020/03/27 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
python合并多个excel文件的示例
2020/09/23 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
人力资源主管岗位职责
2014/01/29 职场文书
群众路线剖析材料
2014/02/02 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android