热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在jqGrid中调整shrinkToFit以避免水平滚动条,并解决页面存在垂直滚动条时表格超出父容器的问题

1、下图右侧为表格超出panel部分页面html代码:jggrid-class

1、下图右侧为表格超出panel部分

《jqGrid 如何shrinkToFit出现水平滚动条 及页面有垂直滚动条时表格会超出父容器处理》
页面html代码:


<html>
<head>
<meta charset="UTF-8" />
<title>jggrid-classestitle>
<link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.5.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://cdn.bootcss.com/jqueryui/1.11.0/jquery-ui.min.css" />
<link rel="stylesheet" href="https://js.cybozu.cn/jqgrid/v5.3.1/css/ui.jqgrid.css" />
<script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js">script>
<script src="https://js.cybozu.cn/jqgrid/v5.3.1/js/jquery.jqGrid.min.js">script>
<script src="https://js.cybozu.cn/jqgrid/v5.3.1/js/i18n/grid.locale-en.js">script>
head>
<body>
<div class="page-content container" style="margin-top: 30px; height: 500px; overflow-x: hidden; overflow-y:auto">
<div class="page-body">
<div class="panel panel-default" id="panel-orders">
<div class="panel-heading">
<h3 class="panel-title">有垂直滚动条时,表格会超出panel-body处理h3>
div>
<table id="orders">table>
div>
<div class="panel panel-default" id="panel-orders">
<div class="panel-heading">
<h3 class="panel-title">空panelh3>
div>
<div class="panel-body">空paneldiv>
div>
div>
div>
<script type="text/Javascript"> var data = [], rowIds = []; function getBills() { var rowCount = 10; for (var i = 0; i < rowCount; i ++) { data.push({ goods_no: i + 1, goods_name: '零件名称' + rowCount + i, car_type_name: '车型' + rowCount + i, package_name: '包装器具' + rowCount + i, pihao: '20190329' + i, lj_desc: '零件描述,A零件B零件C零件A零件B零件C零件' + i, cx_desc: '车型描述,A车型B车型C车型A车型B车型C车型' + i, }) } $("#orders").jqGrid("clearGridData").jqGrid('setGridParam',{ data: data || []}).trigger('reloadGrid'); } $(function() { $("#orders").jqGrid({ colModel: [ { label: "零件号", name: "goods_no", width: 60}, { label: "零件名称", name: "goods_name", width: 480}, { label: "车型", name: "car_type_name", width: 70}, { label: "批号", name: "pihao", width: 70, }, { label: "零件描述(原生显示)", name: "lj_desc", width: 350}, { label: "零件描述(超出部分省略号)", name: "lj_desc", width: 350}, { label: "车型描述(强制换行)", name: "cx_desc", width: 150}, ], datatype: 'local', rownumbers: true, height: 300, rowNum: 1000, shrinkToFit: false, autowidth: true }); getBills(); }); script>
body>
html>

2、原因分析及解决方案

jqgrid在构建的时候,先确定表格宽度,再设置高度。那么问题来了,确定表格宽度的时候,由于表格没有高度,所以其宽度为没垂直滚动条时的宽度,设置style内联宽度;当其设置高度后,出现滚动条,此时panel由于width:100%,会自动缩小滚动条宽度约18px,而表格由于设置的是width:xxx px,因此宽度不会变,所以表格就超出父容器约18px宽度。
那么如何解决?
表格构建的时候显性设置width属性,如下:

$("#orders").jqGrid({
...
width: 1120, //可以通过js计算
autowidth: false
});

注意:
设置了width的话,autowidth请设置为false或干脆不设置。

3、请留意shrinkToFit参数

当shrinkToFit为false时,表格列宽度为colModel设置宽度;
当shrinkToFit为true时:

表格不会出现水平滚动条;
autowidth = true, 会重新计算列宽
autowidth = false, 表格宽度为列模块宽度之后


推荐阅读
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 1.绑定htmlcss1.1对象语法:  传给v-bind:class一个对象,以动态地切换class   ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
author-avatar
北海盗羽翼800
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有