在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 相关文章推荐
地震发生中逃生十大法则
May 12 Javascript
Jquery 高亮显示文本中重要的关键字
Dec 24 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
jquery zTree异步加载简单实例讲解
Feb 25 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
Jan 06 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
sharp.js安装过程中遇到的问题总结
Apr 02 Javascript
原生JS运动实现轮播图
Jan 02 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
第九节 绑定 [9]
2006/10/09 PHP
Yii快速入门经典教程
2015/12/28 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
JavaScript中的数组特性介绍
2014/12/30 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
简单了解python代码优化小技巧
2019/07/08 Python
Django如何将URL映射到视图
2019/07/29 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
python异常处理try except过程解析
2020/02/03 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
2021/01/05 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
String和StringBuffer的区别
2015/08/13 面试题
JPA的特点
2014/10/25 面试题
《尊严》教学反思
2014/02/11 职场文书
2014年底工作总结
2014/12/15 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
活动费用申请报告
2015/05/15 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
2021/05/14 Python