欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jqGrid的表格宽高设置

程序员文章站 2022-05-04 23:39:25
...

一、简述

      通过原生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

温馨提示:不积小流,如何成就精彩的程序人生。