JqGrid实现超长水平(左右)滚动条功能

简介: JqGrid实现超长水平(左右)滚动条功能

使用JqGrid来实现列表功能非常方便快捷,但在使用的过程中还会遇到一些定制化的问题。这篇文章来跟大家说一下当列表中数据比较多时,如何实现水平(左右)滚动来确保能够查看完整的信息。

字段较少情况

在字段较少的情况,直接使用即可,无效做其他调整。下面贴一下简单的示例代码:

$(function () {
    $("#jqGrid").jqGrid({
        url: baseURL + 'biz/message/list',
        datatype: "json",
        colModel: [     
      { label: 'id', name: 'id', index: 'id', width: 50, key: true },
      { label: '标题', name: 'title', index: 'title', width: 80 },      
      { label: '内容', name: 'content', index: 'content', width: 80 },      
      { label: '类型', name: 'type', index: 'type', width: 80 ,
                formatter: function (value, options, row) {
                    if(value == '0'){
                        return '<span class="label label-success">定时</span>';
                    } else if(value == '1'){
                        return '<span class="label label-danger">手动</span>';
                    }
                }},
      { label: '状态', name: 'status', index: 'status', width: 80 ,
                formatter: function (value, options, row) {
                    if(value == '0'){
                        return '<span class="label label-success">待发送</span>';
                    } else if(value == '1'){
                        return '<span class="label label-default">已发送</span>';
                    }
                }},
      { label: '创建时间', name: 'createTime', index: 'create_time', width: 80 },       
      { label: '更新时间', name: 'updateTime', index: 'update_time', width: 80 }      
        ],
    viewrecords: true,
        height: 385,
        rowNum: 10,
    rowList : [10,30,50],
        rownumbers: true, 
        rownumWidth: 25, 
        autowidth:true,
        multiselect: true,
        pager: "#jqGridPager",
        jsonReader : {
            root: "page.list",
            page: "page.currPage",
            total: "page.totalPage",
            records: "page.totalCount"
        },
        prmNames : {
            page:"page", 
            rows:"limit", 
            order: "order"
        },
        gridComplete:function(){
          //隐藏grid底部滚动条
          $("#jqGrid").closest(".ui-jqgrid-bdiv").css({ "overflow-x" : "hidden" }); 
        }
    });
});

默认情况下没有开启水平滚动条,无论有多少字段,都会显示在这一屏,字段比较少时无影响。但字段一旦多了,问题就出来了。此种情况下,jqGrid显示的内容的列宽并没有按照设置的列宽显示。列被压缩。则按比例初始化列宽度。


字段较多情况

针对字段较多的情况,官方提供了两个属性来进行解决。


shrinkToFit:false,

autoScroll: true,

1

2

shrinkToFit:用来说明当初始化列宽度时候的计算类型,如果为ture,则按比例初始化列宽度。如果为false,则列宽度使用colModel指定的宽度。默认值为true。


autoScroll:如果为ture时,则当表格在首次被创建时会根据父元素比例重新调整表格宽度。如果父元素宽度改变,为了使表格宽度能够自动调整则需要实现函数:setGridWidth。


了解了这两个属性的值之后,我们就可以对上面的代码进行重新修改,以满足需求。


$(function () {
    $("#jqGrid").jqGrid({
        url: baseURL + 'biz/message/list',
        datatype: "json",
        colModel: [     
      { label: 'id', name: 'id', index: 'id', width: 50, key: true },
      { label: '标题', name: 'title', index: 'title', width: 80 },      
      { label: '内容', name: 'content', index: 'content', width: 80 },      
      { label: '类型', name: 'type', index: 'type', width: 80 ,
                formatter: function (value, options, row) {
                    if(value == '0'){
                        return '<span class="label label-success">定时</span>';
                    } else if(value == '1'){
                        return '<span class="label label-danger">手动</span>';
                    }
                }},
      { label: '状态', name: 'status', index: 'status', width: 80 ,
                formatter: function (value, options, row) {
                    if(value == '0'){
                        return '<span class="label label-success">待发送</span>';
                    } else if(value == '1'){
                        return '<span class="label label-default">已发送</span>';
                    }
                }},
      { label: '创建时间', name: 'createTime', index: 'create_time', width: 80 },       
      { label: '更新时间', name: 'updateTime', index: 'update_time', width: 80 }      
        ],
    viewrecords: true,
        height: 385,
        rowNum: 10,
    rowList : [10,30,50],
        rownumbers: true, 
        rownumWidth: 25, 
        autowidth:true,
        multiselect: true,
        // 新增的部分
        shrinkToFit:false, 
    autoScroll: true, 
        pager: "#jqGridPager",
        jsonReader : {
            root: "page.list",
            page: "page.currPage",
            total: "page.totalPage",
            records: "page.totalCount"
        },
        prmNames : {
            page:"page", 
            rows:"limit", 
            order: "order"
        }
    });
});

当使用上述代码完成调整之后,还需要做的一件事就是将每列数据的width值进行大小的调整,以适合具体的展示效果。

在上述实例中,针对列表还展示了formatter对应函数用来格式化具体数据项的操作,大家也可以进行参考。

目录
相关文章
|
机器学习/深度学习 人工智能 算法
阿里通义最新黑科技!“通义舞王”:让静态照片翩翩起舞,探索艺术与科技的无限可能
【1月更文挑战第2天】在科技日新月异的时代,艺术创作的疆界正以前所未有的速度拓展,,从AI作曲和音乐生成技术带来的跨风格音乐作品,到基于人工智能的诗歌与文学创作,艺术不再仅仅是人类个体情感与才华的体现,而成为人机交互、数据智能与创新思维相互融合的新领域。 近日,阿里云再次引领创新潮流,推出一款令人叹为观止的AI黑科技——通义舞王
阿里通义最新黑科技!“通义舞王”:让静态照片翩翩起舞,探索艺术与科技的无限可能
|
7月前
|
数据库 测试技术 数据安全/隐私保护
计算机毕业设计文档总被退回?这份完整交付清单帮你一次过审
本文依据GB/T 7713-2005及20所高校规范,梳理计算机毕设完整交付物清单:涵盖源码、数据库、论文、部署4大模块共12项材料,直击40%学生因材料不全返工的痛点,助力高效通过答辩。
|
4月前
|
人工智能 自然语言处理 搜索推荐
品牌在生成式AI中的可见性如何测量?——从DeepSeek到豆包的跨平台监测方法论
生成式AI正重塑用户获取品牌信息的方式。本文提出面向DeepSeek、豆包等对话式AI的品牌监测新框架,聚焦三大核心指标(提及率、推荐率、引用率)与四大辅助指标,通过标准化问题集、去个性化采样及跨平台归一化,实现可复现、可比对的AI心智评估。(239字)
482 2
|
4月前
|
安全 固态存储 Linux
Windows无法启动了怎么办?引导修复、UEFI与Legacy转换指南
电脑开机黑屏报英文错误?别慌!多为引导故障(如BOOTMGR丢失、BCD损坏或UEFI/Legacy模式不匹配)。本文详解启动原理,手把手教你用PE+DiskGenius一键修复引导、重建ESP/MBR,或无损转换启动模式,安全高效,小白也能操作。
|
6月前
|
弹性计算 人工智能 Ubuntu
2min在阿里云ECS上安装龙虾OpenClaw(一键安装开箱即用)
阿里云ECS一键安装OpenClaw:2分钟即可在ECS上部署开源AI助手“小龙虾”。
|
安全 生物认证 数据安全/隐私保护
微信加人频繁怎么快速解除???
微信加人频繁限制的技术分析与解决方案 1. 微信加人限制机制解析
|
缓存 监控 容灾
饿了么技术往事(下)
在商业竞争中,技术团队和其他团队一样,作为组织的一部分,应该是荣辱与共的。但是,就行业而言,饿了么创造的社会价值也是显而易见的,而且,饿了么塑造了这个行业最初的模样,对社会创造的价值影响是长远的!
10392 129
饿了么技术往事(下)
|
Web App开发 Linux iOS开发
Chrome浏览器如何导出所有书签并导入书签
【11月更文挑战第4天】本文介绍了如何在 Chrome 浏览器中导出和导入书签。导出时,打开书签管理器,点击“整理”按钮选择“导出书签”,保存为 HTML 文件。导入时,同样打开书签管理器,点击“整理”按钮选择“导入书签”,选择之前导出的 HTML 文件即可。其他主流浏览器也支持导入这种格式的书签文件。
13514 2
|
Java API Apache
maven常见问题汇总
child module ….pom.xml does not exist a.注意module的名称是否正确,有时候命名问题会导致找不到项目的 b.注意一开始项目命名的规则问题注意一开始项目命名的规则问题         使用maven-compiler-plugin 时 POM...
20404 0
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
632 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)