jqGrid自适应展示不同列数
来源:互联网 发布:苹果7蜂窝移动数据设置 编辑:程序博客网 时间:2024/06/05 07:53
最近做的项目用到很多表格,列数各不同,有些列数很多,超过屏宽,需要设置grid宽度,让未展示出来的列以滚动条的形式出现。但实际列宽常常需要更改,且不同显示器的屏宽相差很大,给grid设置固定宽度常常导致某一列显示不全,UI很难看,用户体验不好,如图所示:
宽度设置如下:
width : $(window).width() < 1400 ? $(window).width():1375;
这些数值往往还需要手动计算,效率实在低下。因此,我在考虑是否可以让表格的宽度设为和屏宽最接近的列宽之和。这样首先我要获取每列的宽度。jqGrid并没有提供类似的参数。于是我先将$("#grid-table")打印出来,在一番查找试探之后,发现列宽数组可以用$("#grid-table").jqGrid()[0].attributes.style表示出来。总共设置了两个方法:
1.让表格显示给定的列数
function setGridWidth(num, array){ var grid_width = 0; for(var i = 0;i < num;i++){ grid_width += array[i].offsetWidth } return grid_width }
2.选择合适的列数
function chooseGridWidth(array){ var len = array.length; var min = setGridWidth(len, array); var num1 = $(window.parent.document).width()-300,num2 = 0; if(min>$(window.parent.document).width()-300){ min = setGridWidth(1, array) }; for(var i = 1; i < len; i++){ for(var j = i+1; j < len; j++){ num2 = setGridWidth(j, array); if(Math.abs(num1-num2) <= Math.abs(min -num1) && (num1-num2)>=0 ){ min = setGridWidth(j, array) } } } return min }
最后设置jqGrid宽度
var cols_array = $(grid_selector).jqGrid()[0].attributes.style.ownerElement.grid.cols;$("#grid-table").setGridWidth( chooseGridWidth(cols_array) );效果如下:
适用性非常好,亦不必手动计算设定的宽度。改变每列的宽度,无需重新设定grid宽度。
阅读全文
0 0
- jqGrid自适应展示不同列数
- jqGrid框架中如何设置动态展示自定义的列
- asp.net中jqgrid根据不同类别头部显示不同的列的实现方法
- jqGrid ui自适应窗口
- jqgrid调整宽度自适应
- JQGrid 自适应宽度
- jqgrid表格宽度自适应
- 列数不同数组的一种遍历
- html上下列数不同的表格
- 动态缩减table列时,table宽度自适应,tr下不同td数改变td的colspan属性值(IE8兼容)
- jqGrid 实现这种select - 同一列的不同行的select 的option 不同
- jqGrid添加动态列
- jqgrid 动态列
- jqgrid 动态列
- jqgrid 动态列生成
- jqgrid 动态列生成
- jqgrid动态列生成
- jqgrid冻结列设置
- 《深入理解Java虚拟机》读书笔记
- Leetcode题解-561. Array Partition I
- 针对oracle中in操作超过1000个参数 会抛异常 处理实例
- 可信计算技术理论与应用研究概述
- js实现生成一个指定长度为n且随机不重复的数组
- jqGrid自适应展示不同列数
- 在Notepad++中使用正则表达式替换文本
- 关于recycleView的java.lang.IllegalArgumentException异常问题
- layer的prompt弹出框,点击回车,触发确定事件
- SAP技术总结
- HashMap源码分析(1.7.0_80)
- MFC的Socket套接字
- 图文解析AJAX的原理(总结的非常好)
- 关于机器学习你需要知道的