easyui中datagrid自适应浏览器大小

版权声明:转载请注明作者及出处,否则将追究法律责任。 https://blog.csdn.net/q2158798/article/details/79139772
因为datagrid的fitColumns只有在初次加载数据的时候生效,所以在加载完数据后再改变浏览器大小,datagrid是不会改变大小的,只能保持在加载数据的时候的浏览器大小

解决方法就是动态设置fitColumns:true

这个有个弊端就是 只要改变浏览器大小就要重新加载,即走一遍后台,比较消耗性能,所以在创建datagrid的时候尽量不要动态,写死,只动态生成数据就好,当然也不用担心,一般也没用户频繁缩放/放大

我的层级是 div-div-iframe-div-datagrid

步骤:

1. 设置公共方法,设置datagrid的属性  fitColumns:true  在浏览器大小改变时也一直存在

//浏览器窗口大小变化后,表格宽度自适应

    $(window).resize(function(){

        fitCoulms();

    });

//设置datagrid的大小始终自适应

functionfitCoulms(){

    $('#grid'+id).datagrid({

        fitColumns:true

    })

   }

2. 改变datagrid中的列的宽度为百分比来实现列的宽度也自适应的效果

(如果只有第一步,里面的列的宽度不会自适应,只有总大小自适应)

公共方法:

//取浏览器可见宽度的百分比,percent为0.1,0.2,0.3对应总宽度的10%,20%,30%

functionfixWidth(percent) {  

        returndocument.body.clientWidth * percent ;//document.body.clientWidth:浏览器可见宽度,这里可以自己做调整  

    }  

然后再设置列的时候调用就可以

varcolumns=[[

        {

        field:'id1',

        title :'编号',

        checkbox :true

        },{

        field:'id',

        title:'id',

        hidden:true,

        },{

        field:'tradeName',

        title:'经营单位名称',

        align :'center',

        width:fixWidth(0.1),

        },{

        field:'ownerName',

        title:'加工单位名称',

        align :'center',

        width:fixWidth(0.1),

        },{

        field:'declareDate',

        title:'申报日期',

        align :'center',

        width:fixWidth(0.05),

        },{

        field:'updateTime',

        title:'更新时间',

        align :'center',

        width:fixWidth(0.05),

        },{

        field:'status',

        title:'状态',

        align :'center',

        width:fixWidth(0.02),

        }

]];

 如有问题可在下方评论。

 

猜你喜欢

转载自blog.csdn.net/q2158798/article/details/79139772
今日推荐