react ,ant Design UI中table组件合并单元格并展开详情的问题
需求:购物车订单列表,如图:
一:单元格合并
遇到这种你会怎么办呢? 单元格合并? 还是其他的方法?
下面是我的处理方式,就是在table 组件的columns上处理,这里拿商品举例,其余的类似,只有一个的类似于‘实付’这种当然就不需要render属性了
let columns =[
{ title: '商品', dataIndex: 'name', align:'center', key: 'name',
render: (value, row, index) => {
return (
row.goodslist.map(goods=>{
return(
<div key={goods.name} className='name'>
<span>{goods.name}</span>
</div>
)
})
)
}
},
.......
]
二:表格的展开项
对于下面的展开项,这儿采用的还是antd的table组件自带的, 只是把前面的+ 变为后面的"展开详情"四个字而已,那么如何让前面的+号消失呢,查了doc 发现并没有,后来得知,我们可以这样做:table中添加
expandIconAsCell={false} //隐藏+号
expandedRowKeys={this.state.expandedKey} //展开行的key值(每行必须有key值才能展开)
以下是我的code:
<Table
locale={locale}
columns={columns}
dataSource={list}
pagination={false}
expandIconAsCell={false} //隐藏+号
expandIconColumnIndex={-1} // 隐藏 +号
expandedRowKeys={this.state.expandedKey} //展开行的key值(每行必须有key值才能展开)
expandedRowRender={ remark => //展开行的内容
<div className='shrInfo'>
<p>
<span>收货人:{remark.name}</span>
<span>收货手机号:{remark.phone}</span>
<span>收货地址:{remark.address}</span>
<span>支付时间:{remark.payTime?remark.payTime:'暂无'}</span>
</p>
{ remark.status ==='已完成'?
(
<p>
<span>快递公司: {remark.express.type}</span>
<span>快递单号: {remark.express.number}</span>
</p>
):('')
} </div>
}
/>
由于每行必须要有key值才可以展开,所以我们可以在获取数据时,进行遍历,然后添加自定义属性key值,然后我们就可以处理是展开详情还是关闭详情了,这儿是用数组处理的
// 展开行
isExpanded = (row, html) => {
const expandedKey = this.state.expandedKey;
if(expandedKey.indexOf(row.key) == -1) {
html.innerHTML = "收起详情";
expandedKey.push(row.key);
}else{
for(let i = 0; i < expandedKey.length; i++) {
if(expandedKey[i] === row.key) {
html.innerHTML = "查看详情";
expandedKey.splice(i, 1);
}
}
}
this.setState({
expandedKey //设置展开行的key值
});
}
react ,ant Design UI中table组件合并单元格并展开详情的问题的更多相关文章
- react antd Table动态合并单元格
示例数据 原始数组 const data = [ { key: '0', name: 'John Brown', age:22, address: 'New York No. 1 Lake Park' ...
- vue中 表头 th 合并单元格,且表格列数不定的动态渲染方法
吐槽 今天,在vue中遇到 复杂表格的渲染 ,需要合并表头th的单元格,且合并单元格的那列的表头数据是动态数据,也就是不知道会有多少个表头列,而这几个表头列还分了好几个子表头. 这个需求在js里用Ju ...
- vue中 表头th 合并单元格,且表格列数不定的动态渲染方法
吐槽 今天,在vue中遇到 复杂表格的渲染 ,需要合并表头的单元格,且合并单元格的那列还是动态数据,也就是说你不知道会有多少组要合并起来,哎,我也有点说不清楚,废话不多说了,看代码把: 代码示例 da ...
- python-利用xlrd模块中读取有合并单元格的excel数据
前言 对于excel中有合并单元格的情况,合并的单元格只能取到第一个单元格的值,合并的单元格后面的单元格内容的值为空,针对这个情况,写了下面一段代码实现, 对单元格进行判断,如果是传入的索引是合并单元 ...
- react+ant design Breadcrumb面包屑组件
import React from 'react'; import { Link }from 'react-router-dom'; import { Breadcrumb } from 'antd' ...
- css table之合并单元格
colspan 是合并列,rowspan是合并行,合并行的时候,比如rowspan="2",它的下一行tr会少一列:合并列的时候 colspan="2",此行的 ...
- display:table表格合并单元格
直接上代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...
- table JS合并单元格
function _w_table_rowspan(_w_table_id,_w_table_colnum){ _w_table_firsttd = ""; _w_table_cu ...
- html table动态合并单元格 js方法
<script> $(document).ready(function(){ function mc(tableId, startRow, endRow, col) { var tb = ...
随机推荐
- goaccess nginx 日志分析
用法介绍 GoAccess的基本语法如下: goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file > 参数说明: -f – 日 ...
- 解题:HAOI2018 苹果树
题面 统计贡献,每个大小为i的子树贡献就是$i(n-i)$,然后子树里又有$i!$种:同时这个子树的根不确定,再枚举这个根是$r$个放的,又有了$r!$种.子树内选点的方式因为子树的根被钦定了顺序所以 ...
- A1066. Root of AVL Tree
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...
- Flask 键盘事件
<div class="container" style="margin-top: 300px; "> <div class="ro ...
- flask 连接MogoDB数据库
# -*- encoding: utf-8 -*- from flask import Flask,request,jsonify,render_template #导入pymongo来连接mongo ...
- django基于中间件的IP访问频率控制
一.中间件的代码 注意:成功时返回的是None,那样才会走视图层,返回httpresponse就直接出去了 import time from django.utils.deprecation impo ...
- 高级组件——表格JTable
JTable(Object[][] rowData,Object[] columnNames) 表格数据 列名集合 setSe ...
- 点赞功能与redis的相遇
https://www.jianshu.com/p/2ab76d5bde71 或者 https://kikoroc.com/2016/06/07/dev-like-function-with-redi ...
- go的net/rpc用法
一:PRC是什么? RPC(Remote Procedure Call) 远程过程调用,是一个计算通信协议.该协议允许一台计算机上的程序调用另外一台计算机上的程序.远程过程调用就是2个不在同一台计算机 ...
- rest_framework学习之路
目录 RESTful理解 APIView 序列化组件 视图组件 解析器 认证组件 权限组件 频率组件 分页器 响应器 URL控制器 版本控制器