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 = ...
随机推荐
- Ubuntu 16.04交换Ctrl和Caps
将Caps这个鸡肋的键位换成Ctrl的人不在少数,Ubuntu 12.04 中可以通过设置-键盘更改,新版去掉了这个功能,可以通过修改系统文件实现 方法1 在~/.xinputrc中加入:setxkb ...
- LOJ#2720 你的名字
题意:给定母串s和若干个询问.每个询问是一个串t和两个数l,r,表示求t中有多少个本质不同的子串没有在s[l,r]中出现过. 解:我写的并不是正解......是个毒瘤做法.只在loj上面卡时过了就写l ...
- 常用的git操作
(转)仅供自己学习,特此转发记录 链接:Git命令清单
- 第三十三篇-TabLayout的使用
效果图: 最上方是一个TabLayout,有三个部分,新闻.财经.娱乐,下方是一个ViewPaper,里面包含三个fragment,分别对应三个xml和java class. 第一个Fragment里 ...
- 最短路 次短路 k短路(k很小)
最短路 luogu 3371 https://www.luogu.org/problemnew/show/P3371 #include <cstdio> #include <cstd ...
- haploview出现“results file must contain a snp column”的解决方法
将plink文件用“--recode HV ”的参数生成即可 /software/plink --file yourfile --recode HV --snps-only just-acgt --o ...
- Sublime text 3支持utf-8
首先安装插件ConvertToUTF8和Codecs33 Sublime Text 3中文乱码问题解决(最新) 然后配置一些有用的用户设置 2. 使文档保存时自动存为 UTF-8 编码格式 默认情况下 ...
- C connect实现Timeout效果(Windows)
int SocketClient::connectTimeOutForWin(SOCKET &connect_fd, const int &timeout, const sockadd ...
- pip的更新问题
OSX系统中在利用pip安装有些模块的时候出现”you are using pip version 9.0.1, however version 10.0.0 is available. You sh ...
- python之OpenCv
1.安装 pip install opencv-python 2.初步简绍 创建窗口显示图像 cv2.namedWindow(窗口名称[,窗口标识]) 例如:cv2.namedWindow(" ...