您的位置:首页 > 产品设计 > UI/UE

easyui中datagrid自适应浏览器大小

2018-01-23 14:55 399 查看
因为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),        }]]; 如有问题可在下方评论。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息