jqGrid冻结列错行问题,将冻结表格(悬浮表格)与 正常表格进行高度同步

本文介绍了一种解决jqGrid中冻结表格高度不一致的方法。通过在表格渲染完成后手动调整高度,确保冻结部分与主体部分的高度同步,提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老项目用到了 jqGrid表格 当中如果使用了冻结表格后 会出现高度不一致的情况
解决办法是通过表格渲染完成后 手动进行同步高度 代码改动最小也最方便

错行前效果:

在这里插入图片描述

function resetTableHeight(tableId) {
    // 修改后单个表格高度
    jQuery(tableId + ' tr').slice(1).each( function (index, element) {
        jQuery(element).css('height', '')
        const id = jQuery(element).attr('id')
        if (!id) return
         // 是否有冻结表格
        if (jQuery(tableId + '_frozen tr' ).eq(id).length > 0) {
        	// 获取任意一边的高度
            const height = jQuery(element).outerHeight(true)
            // 进行双向同步高度
            jQuery(element).css('height', height)
            // 判断是否是最后一个
            if (jQuery(tableId + ' tr').slice(1).length > 7 && index+1 == jQuery(tableId + ' tr').slice(1).length) {
                // TODO:有些表格最后结尾的高度可能会出现一像素的差距所以 最后一个表格高出一像素 抵消底边框多余高度
                jQuery(tableId + '_frozen tr' ).eq(id).css('height', height + 1)
            } else {
            	// 进行双向同步高度
                jQuery(tableId + '_frozen tr' ).eq(id).css('height', height)
            }
        }
    })
}

解决后效果:

在这里插入图片描述
loadComplete中调用当前方法 在resizeStop中调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值