kendoGrid合并单元格

2023-05-16

kendoGrid默认API中并没有合并单元格的方法,故自己借鉴网友的代码并做了改造,下述代码及完成了kendoGrid中的行的合并(在 dataBound事件中完成)

//合并单元格
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Kendo UI Snippet</title>

    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.common.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.rtl.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.silver.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.3.917/styles/kendo.mobile.all.min.css"/>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2019.3.917/js/kendo.all.min.js"></script>
</head>
<body>
  
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
  columns: [
    { field: "school" },
    { field: "grade" },
    { field: "class" },
    { field: "name" },
    { field: "age" }
  ],
  dataSource: {
    data: [
      { school:'一中',grade:'高三',class:'一班',name: "张三", age: 18 },
      { school:'一中',grade:'高三',class:'二班',name: "李四", age: 18 },
      { school:'一中',grade:'高二',class:'一班',name: "王五", age: 17 },
      { school:'一中',grade:'高二',class:'二班',name: "魏无羡", age: 17 },
      { school:'一中',grade:'高二',class:'三班',name: "蓝忘机", age: 17 },
      { school:'一中',grade:'高一',class:'一班',name: "江城", age: 16 },
      { school:'一中',grade:'高一',class:'二班',name: "江厌离", age: 16 },
      { school:'二中',grade:'高三',class:'一班',name: "金石轩", age: 18 },
      { school:'二中',grade:'高三',class:'二班',name: "温宁", age: 17 },
      { school:'二中',grade:'高二',class:'一班',name: "金光瑶", age: 17 },
      { school:'三中',grade:'高三',class:'一班',name: "温兆", age: 16 },
    ]
  },
  dataBound: function () {
    $('#grid>.k-grid-content>table').each(function (index, item) {

      var dimension_col = 1;
      $('#grid>.k-grid-header>.k-grid-header-wrap>table').find('th').each(function () {
        if ($(this).text() == 'school' || $(this).text()=='grade'
           		||$(this).text()=='class') {
          var firstTd = null;
          var rowspan = 0;
          $(item).find('tr').each(function (trIndex,trItem) {
            var currentTd = $(this).find('td:nth-child(' + dimension_col + ')');
            if (firstTd == null) {
              firstTd = currentTd;
              rowspan = 0;
            } else if (currentTd.text() == firstTd.text()) {
              if(firstTd.attr('rowspan')==null||firstTd.attr('rowspan')==0){
                var preCol = null;
                $(item).find('tr').each(function (nTrIndex,nTrItem) {
                	if(nTrIndex<trIndex-1){
                    	return true;
					}
                	var currCol = $(this).find('td:nth-child(' + dimension_col + ')');
					if(preCol == null){
						preCol=currCol;
					}
					if (currCol.text() == firstTd.text()) {
						rowspan++;
					}
					if(preCol.text()!=currCol.text()){
						return false;
					}
                });

                currentTd.hide();
                firstTd.attr('rowspan', rowspan);
                rowspan = 0;
            	}else{
                	currentTd.hide()
				}
            } else {
              rowspan = 0;
              firstTd = currentTd;
            }
          });
        }
        dimension_col++;
      });

    });
  }
});
</script>
</body>
</html>

完成效果如图:
合并单元格

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kendoGrid合并单元格 的相关文章

  • HTTP解析库http-parser简介及使用

    http parser是一个用C编写的HTTP消息解析器 xff0c 可以解析请求和响应 xff0c 被设计用于高性能HTTP应用程序 它不会进行任何系统调用及内存分配 xff0c 它不会缓冲数据 xff0c 它可以被随时中断 根据你的体系
  • k8s之multus cni

    通常情况下在k8s中 xff0c 一个pod只有一个接口 xff0c 用于集群网络中pod和pod通信 xff0c 而multus定义了一种crd Kubernetes Network Custom Resource Definition
  • 【机器学习】浅析机器学习各大算法的适用场景

    最近在参加一个分类算法竞赛 xff0c 也正好整理各个分类机器学习算法的简单介绍 xff0c 应用场景和优缺点 资源来自网上和自己个人理解 一 逻辑回归模型 1 理解逻辑回归模型 xff08 LR xff09 逻辑回归是一种分类算法 xff
  • 【机器学习】异常检测算法之(KNN)-K Nearest Neighbors

    sklearn库里的KNN并没有直接用于异常检测 xff0c 但是包含了距离计算的函数 xff0c 所以我们应用PyOD中KNN库进行异常检测 xff0c 里面基本上也是调用sklearn的函数进行计算 xff0c 并进行了一些加工 一 图
  • 异常检测从入门到应用

    作者 xff1a 成森 64 知乎 来源 xff1a https zhuanlan zhihu com p 116235115 异常检测 Anomaly Detection 作为机器学习的一个重要分支 xff0c 实际应用领域广泛 xff0
  • Jetson Nano配置踩坑全记录

    Jetson Nano配置踩坑全记录 Jetson Nano相关参数 xff1a JetPack 4 6 xff0c cuda 10 2 xff0c SD卡内存 xff1a 512G 一 Jetson Nano系统镜像烧录 在Nvidia官
  • kubeadm的rbac

    什么是 Kubernetes RBAC 基于角色的访问控制 xff08 Role Based Access Control 即 34 RBAC 34 xff09 xff1a 使用 rbac authorization k8s io API
  • kubeadm部署dashboard-2.0.0版本

    kubeadm部署dashboard 2 0 0版本 创建dashboard的secret的私钥 root 64 yunwei CA openssl genrsa out od com key 2048 创建dashboard的secret
  • redis5.0的主从跟哨兵

    redis的主从跟哨兵 安装redis 5 0 12 下载地址 xff1a https download redis io releases 1 下载安装redis root 64 master01 cd opt root 64 maste
  • ROS运行gazebo提示“process has die”问题-已解决

    ROS运行gazebo提示 process has die 问题 已解决 解决方案概述升级gazebo方法 解决方案概述 无数次出现这个问题 xff0c 看了好多教程 xff0c 有的是把这个命令添加到 bashrc文件中 xff1a ex
  • Elasticsearch7.9集群部署,head插件,canal同步mysql数据到es,亲自测试,无坑

    Elasticsearch集群部署 1 服务器规划 10 4 7 11 node1 10 4 7 12 node2 10 4 7 13 node3 1 集群相关 一个运行中的 Elasticsearch 实例称为一个节点 xff0c 而集群
  • elasticsearch备份

    es集群主机分布 10 4 7 11 node1 10 4 7 12 node2 10 4 7 21 node3 10 4 7 22 nfs 1 在主机10 4 7 22部署nfs root 64 localhost yum install
  • 批量拷贝公钥到指定的主机,实现免秘钥登录

    一 xff1a copy公钥脚本 root 64 ansible tmp cat copy pubkey sh bin bash PassWord 61 1 rpm qa grep sshpass 2 gt amp 1 gt dev nul
  • centos7内核参数优化以及内核升级

    一 xff1a 修改内核配置文件 vim etc sysctl conf 刷新配置文件 sysctl p 关IPv6 net ipv6 conf all disable ipv6 61 1 net ipv6 conf default dis
  • k8s的ceph

    ceph安装 地址 xff1a https rook io docs rook v1 8 quickstart html 特性丰富 1 xff0c 支持三种存储接口 xff1a 块存储 文件存储 对象存储 2 xff0c 支持自定义接口 x
  • prometheus监控k8s集群

    prometheus监控k8s集群 实现思路 pod性能 xff1a 使用cadvisor进行实现 xff0c 监控容器的CPU 内存利用率 Node性能 xff1a 使用node exporter实现 xff0c 主要监控节点CPU 内存
  • centos7部署vsftpd虚拟用户

    vsftpd部署 一 xff1a 安装vsftpd 1 首先要查看你是否安装vsftpd rpm qa grep vsftpd vsftpd 3 0 2 10 el7 x86 64 2 安装vsftpd yum install y vsft
  • Ceph OSD扩容与缩容

    在企业生产环境中 xff0c 随着时间的迁移数据会存在磁盘空间不足 xff0c 或者机器节点故障等情况 OSD又是实际存储数据 xff0c 所以扩容和缩容OSD就很有必要性 随着我们数据量的增长 xff0c 后期可能我们需要对osd进行扩容
  • mysql的条件查询基础知识(一)

    一 xff1a 条件查询基础知识 语法 xff1a select 查询列表 from 表名 where 筛选条件 二 xff1a 分类 xff1a 主要分为3类 xff1a 一 按条件表达式筛选 简单条件运算符 xff1a gt lt 61
  • 【C++构造函数后面的冒号作用】

    C 43 43 构造函数后面的冒号作用 功能1 对基类进行初始化2 对类成员进行初始化3 对类中const变量进行初始化 功能 1 对基类进行初始化 多重继承中 xff0c 对多个基类进行初始化 冒号后面有多个参数 xff0c 中间用逗号隔

随机推荐

  • mysql基础知识常见函数(二)

    一 xff1a 常见函数概念 概念 xff1a 类似于java的方法 xff0c 将一组逻辑语句封装在方法体中 xff0c 对外暴露方法名 好处 xff1a 1 隐藏了实现细节 2 提高代码的重用性 调用 xff1a select 函数名
  • mysql基础知识分组函数跟分组查询(三)

    一 xff1a 分组函数 功能 xff1a 用作统计使用 xff0c 又称为聚合函数或统计函数或组函数 分类 xff1a sum 求和 avg 平均值 max 最大值 min 最小值 count 计算个数 特点 xff1a 1 sum av
  • $*和$@的区别

    一 xff1a 解析 xff1a 会把接收到的所有参数当成一个整体对待 xff0c 表示一个参数 64 会对待接收到的所有参数进行区分 以空格分隔开 xff0c 独立的多个参数 二 xff1a 举例说明 root 64 fengge sh
  • mysql性能瓶颈排查

    mysql性能瓶颈排查 top free vmstat sar mpstat 查看mysqld进程的cpu消耗占比 确认mysql进程的cpu消耗是 user 还是sys 高 确认是否是物理内存不够用了 确认是否有swap产生 使用下面工具
  • centos7系统提示no space left on device

    一 操作报错 no space left on device 但是查看系统磁盘占用空间 xff0c 却还有空闲 xff0c 说明是inodes占用满了 二 查看磁盘系统的inodes使用情况 三 要解决这问题 xff0c 只需找出 xff0
  • page_cleaner

    MySQL Error Log 中IO写入瓶颈的警告分析 在一台MySQL实例上频繁做大批量的写入测试 xff0c 无意中发现MySQL的errorlog中频繁出现如下的Note xff1a page cleaner 1000ms inte
  • mysql的存储函数与存储过程

    1 存储过程概述 我们前面所学习的 MySQL 语句都是针对一个表或几个表的单条 SQL 语句 xff0c 但是在数据库的实际操作中 xff0c 经常会有需要多条 SQL 语句处理多个表才能完成的操作 例如 xff0c 为了确认学生能否毕业
  • 逆变

    去年今日此门中 xff0c 人面桃花相映红 人面不知何处去 xff0c 桃花依旧笑春风 去年的今天 xff0c 刚高考完的我正处于迷茫与蹉跎之中 xff0c 想起那时候的我 xff0c 怀着此种状态 xff0c 想必也无可厚非吧 xff01
  • 使用SecureCRT+VNCViewer进行端口转发,修改端口映射

    1 设置本地端口转发属性 xff0c 设置成功后 xff0c 此时已经将服务器上的5901端口映射到windows本地的5901端口 2 打开本机VNCViewer进行远程连接的配置 3 打开该远程连接 xff0c 进行5000端口和999
  • 面试题目积累

    题目一 xff1a 如何配置寄存器 xff08 1 xff09 通过手册 一 找到要操作IO口的基地址 二 找到端口输入寄存器的地址偏移 三 找到输入数据寄存器中具体的端口数据位 2 操作IO口 一 找到基地址 二 找到偏移地址 xff0c
  • FreeRTOS学习笔记-Stream Buffer

    FreeRTOS学习笔记 Stream Buffer 概述关键函数课程示例StreamBuffer 创建 发送与接收StreamBuffer查询接收添加监控任务 xff0c 确定StreamBuffer大小 概述 关键函数 span cla
  • 色彩表示与编码

    图片中的代码 xff0c 依旧是RGB色值的表示 在计算机中 xff0c RGB的每个通道 xff0c 通常都以8位2进制空间来存储 xff0c 因此能对每个通道进行256阶分级 xff1a 以10进制数表示时 xff0c 范围为0 255
  • 程序猿小白的2016—不忘初心,继续奋斗

    回顾过去的一年 xff0c 酸甜苦辣各种滋味 这一年很不一样 xff0c 离开了大学校门 xff0c 在社会上也体验了一把 思想逐渐成熟起来 xff0c 2016已然成为过去 xff0c 却带给了自己很多难忘的经历 完美的毕业设计 作为一名
  • 流媒体传输协议浅析(二)UDP媒体传输

    一 引言 既然UDP天然适合流媒体场景 xff0c 为什么还存在TCP的流媒体协议 xff1f UDP的实时性 xff0c 低延迟 xff0c 又支持组播 xff0c 确实适合音视频场景 xff0c 但由于UDP是不稳定不可靠传输技术 xf
  • 流媒体传输协议浅析(三)可靠UDP传输方案

    一 引言 从流媒体的业务特征和TCP xff0c UDP各种特点 xff0c UDP在媒体传输方面具有很大优越性 xff0c 但UDP可靠性需要业务开发这投入大量的人力 xff1b 相反 tcp 技术成熟 xff0c 可以复用已稳定的htt
  • Android Studio 使用Lambda表达式「详细配置」

    前言 xff1a Lambda 表达式 xff0c 也可称为闭包 xff0c 它是推动 Java 8 发布的最重要新特性 Lambda 允许把函数作为一个方法的参数 xff08 函数作为参数传递进方法中 xff09 使用 Lambda 表达
  • 如何解决 Python 错误 NameError: name ‘X‘ is not defined

    Python NameError name is not defined 发生在我们试图访问一个未定义的变量或函数时 xff0c 或者在它被定义之前 要解决该错误 xff0c 需要确保我们没有拼错变量名并在声明后访问它 确保你没有拼错变量或
  • Ajax请求返回图片

    需求 xff1a 使用Ajax返回图片数据展示在Img标签上 前端Ajax请求 lt HTML标签 gt lt img id 61 34 ImagePic 34 alt 61 34 Base64 encoded image 34 width
  • 多读书,读好书

    古人云读书百变其义自现 xff0c 当今是个大数据时代 xff0c 各类书籍种类繁多 xff0c 我们不可能一一预览 xff0c 同时也不需要 也没时间一一细看 xff0c 我们需要的是多遍阅读经典书籍 xff0c 将会事半功倍 下面我将介
  • kendoGrid合并单元格

    kendoGrid默认API中并没有合并单元格的方法 xff0c 故自己借鉴网友的代码并做了改造 xff0c 下述代码及完成了kendoGrid中的行的合并 xff08 在 dataBound事件中完成 xff09 span class t