jqGrid的表格宽高设置
一、简述
通过原生JavaScript写页面,对于自己而言就是一种感觉,慢爽(就是写的慢,但是写的爽)。
而通过框架写页面,对于自己而言就是另一种感觉,快恼(一套模板页面几分钟搞定,但是定制样式难调)
目的:由于在开发过程中,同事为了调样式也是很崩溃,所以将JqGrid调整表格自适应的方法传授给大家。
二、设置jqGrid表格宽高自适应
(1) 通过JqGrid自带的表格宽、高API接口进行设置;
流程1:获取需要相对于页面某个元素的宽度,设置为一样的宽度;
流程2:通过JqGrid框架自带的API接口进行设置;
流程3:设置完,清除页面缓存的JavaScript文件,刷新页面。
API:$("#identity“).jqGrid("setGridHeight", 200);$("#identity“).jqGrid("setGridWidth", 200);
(2)通过JqGrid框架在初始化时,设置自适应;
流程1:加载JqGrid表格对象时,延迟普遍在20ms左右,因此设置延迟为100ms基本都没问题。
流程2:在加载colmodel时,设置width:100%,height:100%,autowidth:true;
$(function(){
//页面加载完成之后执行
pageInit();
});
function pageInit(){
//创建jqGrid组件
jQuery("#list2").jqGrid(
{
url : 'data/JSONData.json',//组件创建完成之后请求数据的url
datatype : "json",//请求数据返回的类型。可选json,xml,txt
colNames : [ '列号', '批量', 'ID', '用户名', 'IP','状态', '操作' ],//jqGrid的列显示名字
colModel : [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式.....
{name : 'id',index : 'id'},
{name : 'invdate',index : 'invdate'},
{name : 'name',index : 'name asc, invdate'},
{name : 'amount',index : 'amount'},
{name : 'tax',index : 'tax'},
{name : 'total',index : 'total'},
{name : 'note',index : 'note'}
],
// colModel : [ //jqGrid每一列的配置信息。包括名字,索引,宽度,对齐方式.....
// {name : 'id',index : 'id',width : 237},
// {name : 'invdate',index : 'invdate',width : 237},
// {name : 'name',index : 'name asc, invdate',width : 237},
// {name : 'amount',index : 'amount',width : 237},
// {name : 'tax',index : 'tax',width : 237},
// {name : 'total',index : 'total',width : 237},
// {name : 'note',index : 'note',width : 237}
// ],
width:"100%",
autowidth:true,
height:"100%",
rowNum : 10,//一页显示多少条
rowList : [ 10, 20, 30 ],//可供用户选择一页显示多少条
pager : '#pager2',//表格页脚的占位符(一般是div)的id
sortname : 'id',//初始化的时候排序的字段
sortorder : "desc",//排序方式,可选desc,asc
mtype : "post",//向后台请求数据的ajax的类型。可选post,get
viewrecords : true,
// caption : "JSON Example"//表格的标题名字
});
/*创建jqGrid的操作按钮容器*/
/*可以控制界面上增删改查的按钮是否显示*/
jQuery("#list2").jqGrid('navGrid', '#pager2', {edit : false,add : false,del : false});
//表格宽度自适应
$(function(){
$(window).resize(function(){
$("#list2").setGridWidth($(window).width());
});
});
}
(3)通过浏览器的开发者模式,进行百分比设置块级元素的宽高(只有具有宽高属性的块级标签,才能设置)
实现思路:通过开发者模式,获取页面上表格的元素,然后查看对应的宽高,如果为像素值的宽高,设置为百分比就好。
function autoSetGridWH(selector){
//1.传入加载jqGrid表格的选择器.
//2.拼接在下面代码中,延迟设置dom对象属性。
setTimeout(function(){
//1.
$("#gbox_selector").css("width","100%");
$("#gview_selector").css("width","100%");
$("#gview_selector .ui-jqgrid-hdiv").css("width","100%");
$("#gview_selector .ui-jqgrid-hbox").css("width","100%");
$("#gview_selector .ui-jqgrid-bdiv").css("width","100%");
}, 200);
}
参考博客:https://blog.csdn.net/yang1393214887/article/details/77833376?locationNum=9&fps=1
温馨提示:不积小流,如何成就精彩的程序人生。
上一篇: 关于IE中元素自适应宽度