React 合并行 RowSpan
十年河东,十年河西,莫欺少年穷
学无止境,精益求精
今儿分享一篇关于React Table 组件合并单元行的方法!
实例效果如下:

原则就是遇到相同的供方名称,就要做行合并!
思路如下:后端计算合并的行数,前端绑定即可!注:此算法通用
后端方法如下(RowSpan是返回LIst<Model>数据中Model的属性,用于前端绑定即可):
if (data.list != null)
{
for(int i = ; i < data.list.Count; i++)
{
int index = GetIndex(data.list, i);
if (index == )
{
data.list[i].RowSpan = ;
}
else
{
data.list[i].RowSpan = index+;
i+= index;
}
}
//var lst = data.list.Select(A => A.RowSpan).ToList();
}
GetIndex()方法为:
private int GetIndex(List<V_SM_R_SpClassifyModel> list,int i)
{
int num = ;
for (int j = i + ; j < list.Count; j++)
{
if (list[i].SupplierName == list[j].SupplierName)
{
num++;
}
else
{
break;
}
}
return num;
}
根据以上算法,即可算出要合并的行\
前端绑定如下:
{
      title: '供方名称',
      dataIndex: 'SupplierName',
      sorter: true,
      render: (value, row, index) => {
        const obj = {
          children: <a href='javascript:void(0)'>
            <Link target='_blank' to={`/supplier/info/${row.SupplierId}/${row.SpClassifyId}`}>
              {row.SupplierName}
              {
                row.IsDelayStorage
                  ? <span style={{ color: 'red' }}>(后入库)</span>
                  : null
              }
            </Link>
          </a>,
          props: { rowSpan: row.RowSpan },
        }
        return obj
      }
    }
@陈卧龙的博客
React 合并行 RowSpan的更多相关文章
- Reapter合并行
		
html文件: <asp:Repeater ID="rptEmployee" runat="server"> <HeaderTemplate& ...
 - Vim常用操作-合并行。
		
刚接触 Vim 会觉得它的学习曲线非常陡峭,要记住很多命令.所以这个系列的分享,不会教你怎么配置它,而是教你怎么快速的使用它. 在开发时为了代码美观,经常会把属性用换行的方式显示. <el-di ...
 - easyui生成合并行,合计计算价格
		
easyui生成合并行,合计计算价格 注:本文来源: 原创 一:图样你效果图 二:代码实现 1:datagrid 列展示: window.dataGrid = $("#dataGrid&qu ...
 - sed行处理详解(交换行,合并行,删除行等)
		
1.合并行 zj@zj:~/Script/blog_script$ cat test11234合并上下两行zj@zj:~/Script/blog_script$ sed '$!N;s/\n/\t/' ...
 - 【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行
		
Editplus 选中一行: ctrl+rEditplus 复制一行: ctrl+r选择行,然后ctrl+c复制.复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行Ed ...
 - easyui-datagrid自动合并行
		
1.目标 1.1表格初始化完成后,已经自动合并好需要合并的行: 1.2当点击字段排序后,重新进行合并: 2.实现 2.1 引入插件 /** * author ____′↘夏悸 * create dat ...
 - js合并行
		
网上找了好久才找到,在这记录下. <script type="text/javascript" > function MergerRow(ID) { var tab = ...
 - element-ui合并行:span-method
		
objectSpanMethod({ row, column, rowIndex, columnIndex }) { if (columnIndex === 0) { if (rowIndex % 2 ...
 - easyui------自动合并行
		
转载: http://www.cnblogs.com/xiangzhong/p/5088259.html#undefined 1.引入插件 $.extend($.fn.datagrid.methods ...
 
随机推荐
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU特性介绍(4)- RT105x选型
			
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的RT105x选型. 大家都知道i.MX RT105x是i.MX RT系列第一款产品,在提这款产品特性的 ...
 - linux-2.6.18源码分析笔记---进程
			
一.进程重要字段描述 在目录include\linux\sched.h下定义了进程描述符task_struct,关注如下字段: 进程状态 volatile long state:表示进程状态,在该文件 ...
 - php-fpm 的优化
			
pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log log_level = ...
 - 程序员50题(JS版本)(五)
			
程序21:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. var arr=[]; var count=20; for(var i=0;i<= ...
 - #WEB安全基础 : HTML/CSS | 0x10.1更多表单
			
来认识更多的表单吧,增加知识面 我只创建了一个index.html帮助你认识它们 以下是代码 <!DOCTYPE html> <html> <head> <m ...
 - 35.Odoo产品分析 (四) – 工具板块(6) – 午餐管理(1)
			
查看Odoo产品分析系列--目录 很多公司为都会为员工提供午餐.然而,公司内部的午餐需要适当的管理,特别是在员工或供应商数量非常重要的时候."午餐订单"模块的开发,使管理更容易,也 ...
 - Parcelable encountered IOException writing serializable object
			
异常: java.lang.RuntimeException: Parcelable encountered IOException writing serializable object 这是在in ...
 - SpringBoot Web学习笔记
			
一.资源的访问: 情形一.所有的 /webjars/** 都会去 classpath:/META_INFO/resource/webjars/ 下找资源: webjars:以jar包的方式引入静态 ...
 - Android 为TV端助力
			
记录两次事情: 第一个给view添加动画效果,需要保证view是可以获取焦点的 第二个给listview,GridView设置选择器 listselector时,要保证他的子item无背景,否则选择器 ...
 - Visual Studio无法调试
			
一.最近Visual studio调试不起来,运行完报错 二.解决方法 打开 调试>>>>选项>>>>常规>>>对ASP.NET启用 ...