easyui中datagrid自適應瀏覽器大小
阿新 • • 發佈:2018-11-11
因為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), } ]];
如有問題可在下方評論。