在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 相关文章推荐
js中cookie的使用详细分析
May 28 Javascript
jquery 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
JavaScript生成SQL查询表单的方法
Aug 13 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
史上最为详细的javascript继承(推荐)
May 18 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
Jul 18 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分页示例代码
2007/03/19 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
angular 服务随记小结
2019/05/06 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
python从sqlite读取并显示数据的方法
2015/05/08 Python
python实现音乐下载器
2018/04/15 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
阿巴庭院:Abba Patio
2019/06/18 全球购物
秋季运动会通讯稿
2014/01/24 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
售后服务承诺书范文
2014/03/26 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
作风建设年度心得体会
2014/10/29 职场文书
立春观后感
2015/06/18 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏