- 问题:easyui中的datagrid,想要生成合适的高度(自适应),并且不会出现侧边滚动条。
解决思路一:
onLoadSuccess:function() {
var heightCount = $(this).datagrid("getRows").length;//获取datagrid一共多少行
$(this).datagrid("clearSelections");
var heightPlus = (heightCount + 2) * 36;//每一行36px,加表格标题36px,加操作栏36px.
$(window.parent.document).find(".tabs-content-iframe-12").css("height",heightPlus);
},
测试发现上面的方法只能解决行内的内容是固定高度的,比如换行或者行内定义了多行的情况,还是不能准确计算datagrid的合适高度,于是要想其他的解决办法。
解决思路二:
onLoadSuccess:function() {
var heightPlus = 0;//datagrid的高度
$(".datagrid-btable").each(function(){
if($(this).index()==0){
$(this).children().children("tr").each(function(){
heightPlus += $(this).height();
})
}
});
$(this).datagrid("clearSelections");
heightPlus += 2 * 36;//加表格标题36,加操作栏36
$(window.parent.document).find(".tabs-content-iframe-12").css("height",heightPlus);
},
通过遍历datagrid中每一个row的高度,然后让它们叠加,这样就能比较完美的解决行内换行或者行内嵌套的问题。高度也可以自适应。